| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- package s2
- import "sync"
- // Table size constants
- const (
- betterLongTableBits = 17
- betterLongTableSize = 1 << betterLongTableBits // 131072
- betterShortTableBits = 14
- betterShortTableSize = 1 << betterShortTableBits // 16384
- betterSnappyLongTableBits = 16
- betterSnappyLongTableSize = 1 << betterSnappyLongTableBits // 65536
- bestLongTableBits = 19
- bestLongTableSize = 1 << bestLongTableBits // 524288
- bestShortTableBits = 16
- bestShortTableSize = 1 << bestShortTableBits // 65536
- )
- type betterTables struct {
- lTable [betterLongTableSize]uint32
- sTable [betterShortTableSize]uint32
- }
- var betterTablePool = sync.Pool{New: func() interface{} { return &betterTables{} }}
- // betterSnappyTables holds better-snappy compression hash tables.
- type betterSnappyTables struct {
- lTable [betterSnappyLongTableSize]uint32
- sTable [betterShortTableSize]uint32
- }
- var betterSnappyTablePool = sync.Pool{New: func() interface{} { return &betterSnappyTables{} }}
- // bestTables holds best compression hash tables.
- type bestTables struct {
- lTable [bestLongTableSize]uint64
- sTable [bestShortTableSize]uint64
- }
- var bestTablePool = sync.Pool{New: func() interface{} { return &bestTables{} }}
- // getBetterTables gets a zeroed betterTables from the pool.
- func getBetterTables() *betterTables {
- t := betterTablePool.Get().(*betterTables)
- *t = betterTables{}
- return t
- }
- // getBetterSnappyTables gets a zeroed betterSnappyTables from the pool.
- func getBetterSnappyTables() *betterSnappyTables {
- t := betterSnappyTablePool.Get().(*betterSnappyTables)
- *t = betterSnappyTables{}
- return t
- }
- // getBestTables gets a zeroed bestTables from the pool.
- func getBestTables() *bestTables {
- t := bestTablePool.Get().(*bestTables)
- *t = bestTables{}
- return t
- }
|