Skip to content

Releases: puzpuzpuz/xsync

v2.4.1

04 Jun 17:48
5e2931d
Compare
Choose a tag to compare
  • Fix nextPowOf2 on zero input (#98)
    • Fixes the initial capacity of maps presized to a very small capacity (less than 3)

v2.4.0

08 Nov 16:33
d2d6d5a
Compare
Choose a tag to compare
  • Add presized constructors for Map and MapOf (#86)
  • Fix potential iteration over duplicate keys in Map/MapOf.Range (#87 and #88)

v2.3.2

03 Nov 16:19
a140d88
Compare
Choose a tag to compare
  • 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

01 Nov 18:16
aa980e6
Compare
Choose a tag to compare
  • 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

31 Oct 17:27
1f19135
Compare
Choose a tag to compare
  • 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

30 Oct 12:28
224934b
Compare
Choose a tag to compare
  • 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

29 Oct 13:45
051117f
Compare
Choose a tag to compare
  • 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

27 Oct 19:35
fb238bd
Compare
Choose a tag to compare
  • Fix duplicate keys on intensive map insertion and deletion (#63)

v2.0.1

26 Oct 16:14
1482f1b
Compare
Choose a tag to compare
  • Update version in package name (#61)

v2.0.0

26 Oct 15:41
cdef836
Compare
Choose a tag to compare
  • 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.