Releases: puzpuzpuz/xsync
Releases · puzpuzpuz/xsync
v2.4.1
- Fix nextPowOf2 on zero input (#98)
- Fixes the initial capacity of maps presized to a very small capacity (less than 3)
v2.4.0
- Add presized constructors for
Map
and MapOf
(#86)
- Fix potential iteration over duplicate keys in
Map
/MapOf.Range
(#87 and #88)
v2.3.2
- Optimize MapOf.Range (#82)
- Report throughput metric in benchmarks (#81)
- Update benchmark results page (#83)
Thanks @felixge for holding a comprehensive (and lengthy) benchmarks run.
v2.3.1
- New MapOf design (#78)
MapOf
now takes full advantage of Go generics: less GC pressure, less atomic operations on reads, also improved integer hash function
- If you're into benchmarking, comparisons with other concurrent map implementations are welcome (see this and this PRs as comparison examples)
v2.3.0
- Optimize
MapOf
integer hash function (#76)
- Optimize
RBMutex
footprint and thread-to-slot distribution (#75)
- This is a breaking change.
NewRBMutex()
function must be called now to initialize a RBMutex
.
v2.2.0
- Optimize
Counter
thread-to-stripe distribution (#71 and #74)
- This is a breaking change.
NewCounter()
function must be called now to initialize a Counter
.
v2.1.0
- Add Clear method to Map and MapOf (#64)
- Add Compute method to Map (#68 and #69)
- Fix the second valueFn call in MapOf.LoadOrCompute (#66)
Thanks @psyhatter and @veqryn for the contribution.
v2.0.2
- Fix duplicate keys on intensive map insertion and deletion (#63)
v2.0.1
- Update version in package name (#61)
v2.0.0
- Use hash/maphash instead of go:linkname hacks (#56)
- This changes the
MapOf
API in favor of the standard hash/maphash
package. The main difference is in the hasher
argument expected in the NewTypedMapOf
function.