auth/vendor/github.com/savsgio/dictpool
Maxim Lebedev dcf9e3c2ca
continuous-integration/drone/push Build is failing Details
📌 Vendored dependencies
2022-06-09 22:35:23 +05:00
..
.gitignore 📌 Vendored dependencies 2022-06-09 22:35:23 +05:00
.golangci.yml 📌 Vendored dependencies 2022-06-09 22:35:23 +05:00
LICENSE 📌 Vendored dependencies 2022-06-09 22:35:23 +05:00
README.md 📌 Vendored dependencies 2022-06-09 22:35:23 +05:00
dict.go 📌 Vendored dependencies 2022-06-09 22:35:23 +05:00
pool.go 📌 Vendored dependencies 2022-06-09 22:35:23 +05:00
types.go 📌 Vendored dependencies 2022-06-09 22:35:23 +05:00
types_gen.go 📌 Vendored dependencies 2022-06-09 22:35:23 +05:00

README.md

dictpool

Test status
Go Report Card
GoDev

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

Very useful when reuse memory (sync.Pool) to avoid extra allocations and increase the performance.

Benchmarks:

BenchmarkDict-12    	100000000	        12.08 ns/op	       0 B/op	       0 allocs/op
BenchmarkStdMap-12    	71028591	        21.23 ns/op	       0 B/op	       0 allocs/op

Benchmark with Go 1.17

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)