diff --git a/lib/leveledbytebufferpool/pool.go b/lib/leveledbytebufferpool/pool.go index 736788a6a..3fb7dcb06 100644 --- a/lib/leveledbytebufferpool/pool.go +++ b/lib/leveledbytebufferpool/pool.go @@ -9,15 +9,15 @@ import ( // pools contains pools for byte slices of various capacities. // -// pools[0] is for capacities from 0 to 8 -// pools[1] is for capacities from 9 to 16 -// pools[2] is for capacities from 17 to 32 +// pools[0] is for capacities from 0 to 64 +// pools[1] is for capacities from 65 to 128 +// pools[2] is for capacities from 129 to 256 // ... -// pools[n] is for capacities from 2^(n+2)+1 to 2^(n+3) +// pools[n] is for capacities from 2^(n+5)+1 to 2^(n+6) // // Limit the maximum capacity to 2^18, since there are no performance benefits // in caching byte slices with bigger capacities. -var pools [17]sync.Pool +var pools [12]sync.Pool // Get returns byte buffer with the given capacity. func Get(capacity int) *bytesutil.ByteBuffer { @@ -51,10 +51,10 @@ func getPoolIDAndCapacity(size int) (int, int) { if size < 0 { size = 0 } - size >>= 3 + size >>= 6 id := bits.Len(uint(size)) if id >= len(pools) { id = len(pools) - 1 } - return id, (1 << (id + 3)) + return id, (1 << (id + 6)) }