/dictpool

Memory store like map[string]interface{} with better performance when reuse memory

Primary LanguageGoApache License 2.0Apache-2.0

DEPRECATED

Now the performance is no better than a map or sync.Map except that the extra memory allocations are better. So without better performance, maybe map or sync.Map are good built-in alternatives

Because of that, I decided to archive this library and end support.

Thanks so much 😉!

dictpool

Test status Go Report Card GoDev

Memory store like map[string]interface{} without extra memory allocations.

Benchmarks:

BenchmarkDict-12                           41162             28199 ns/op               0 B/op          0 allocs/op
BenchmarkStdMap-12                        117976              9195 ns/op           10506 B/op         11 allocs/op
BenchmarkSyncMap-12                        73750             15524 ns/op            3200 B/op        200 allocs/op

Benchmark with Go 1.19

Example:

d := dictpool.AcquireDict()
// d.BinarySearch = true  // Useful on big heaps

key := "foo"

d.Set(key, "Hello DictPool")

if d.Has(key){
    fmt.Println(d.Get(key))  // Output: Hello DictPool
}

d.Del(key)

dictpool.ReleaseDict(d)