A variable size buffer pool for go.
Use this when you need to repeatedly allocate and free a bunch of temporary buffers of approximately the same size.
-
Reduces Memory Usage:
- We don't have to wait for a GC to run before we can reuse memory. This is essential if you're repeatedly allocating large short-lived buffers.
-
Reduces CPU usage:
- It takes some load off of the GC (due to buffer reuse).
- We don't have to zero buffers (fewer wasteful memory writes).
- Can leak memory contents. Unlike the go GC, we don't zero memory.
- All buffers have a capacity of a power of 2. This is fine if you either (a) actually need buffers with this size or (b) expect these buffers to be temporary.
- Requires that buffers be returned explicitly. This can lead to race conditions and memory corruption if the buffer is released while it's still in use.
PRs are welcome!
Small note: If editing the Readme, please conform to the standard-readme specification.
MIT © Protocol Labs BSD © The Go Authors
The last gx published version of this module was: 0.1.3: QmQDvJoB6aJWN3sjr3xsgXqKCXf4jU5zdMXpDMsBkYVNqa