diff options
Diffstat (limited to 'internal/bufpool/class.go')
| -rw-r--r-- | internal/bufpool/class.go | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/internal/bufpool/class.go b/internal/bufpool/class.go new file mode 100644 index 00000000..60842d5e --- /dev/null +++ b/internal/bufpool/class.go @@ -0,0 +1,23 @@ +package bufpool + +var sizeClasses = [...]int{ + DefaultBufferCap, + 64 << 10, + 128 << 10, + 256 << 10, + 512 << 10, + 1 << 20, + 2 << 20, + 4 << 20, + maxPooledBuffer, +} + +func classFor(size int) (idx, classCap int, ok bool) { + for i, class := range sizeClasses { + if size <= class { + return i, class, true + } + } + + return -1, size, false +} |
