Skip to content

Releases: puzpuzpuz/xsync

v3.0.0

22 Oct 12:24
f7bf836
Compare
Choose a tag to compare
  • Replace the user-defined hash function in MapOf factories with a built-in fast hash function (#107, #108)

All New*MapOf* functions are now replaced with the NewMapOf and NewMapOfPresized functions. There is no longer a need to provide a user-defined hash function.

Kudos go to @destel

v2.5.1

26 Sep 18:44
c3b5020
Compare
Choose a tag to compare
  • Speed up built-in string hash function (#106)

v2.5.0

21 Aug 08:06
ace0f0f
Compare
Choose a tag to compare
  • Add concurrent queue with generics support (MPMCQueueOf) (#104)

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.