concurrent-swiss-map
swiss
concurrent-swiss-map | swiss | |
---|---|---|
3 | 5 | |
237 | 799 | |
- | 2.3% | |
4.1 | 2.7 | |
about 2 months ago | 7 months ago | |
Go | Go | |
MIT License | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
concurrent-swiss-map
-
SwissTable: A High-Performance Hash Table Implementation
Currently, the official implementation of swisstable in Go is still under discussion, and there are a few community implementations like concurrent-swiss-map and swiss. However, they are not perfect; in small map scenarios, swisstable may even underperform compared to runtime_map. Nonetheless, the potential demonstrated by swisstable in other languages indicates that it is worth anticipation.
- A high-performance, thread-safe generic concurrent hash map implementation
swiss
- 1BRC Coding Challenge: Nerd Sniping the Java Community
-
SwissTable: A High-Performance Hash Table Implementation
SwissTable's time complexity is similar to linear probing, while its space complexity is between chaining and linear probing. The implementation I've referenced is primarily based on dolthub/swiss.
-
One Billion Row Challenge in Golang - From 95s to 1.96s
Time to deal with the large elephant in the room, the runtime.mapaccess2_fast64 map lookup. Despite spending some hours of research, I couldn't found any viable way to optimize the builtin map. However, there is a community alternative called Swiss Map, which sells itself as faster and more memory efficient than the builtin one. Replacing it is almost a drop-in, with just some syntax changes:
- Golang Port of Abseil's SwissTable
- SwissMap: A Golang Port of SwissTable
What are some alternatives?
go - The Go programming language
gen - gen is a generic general use Go functions library with the intention of replacing duplicated code where the same functionality is needed across multiple types, and provides a common interface for the functionality. The library is designed to be used in a wide variety of projects and is designed to be easy to use.
std - An enhanced version of the standard library based the new Generics feature.
quadtree - Generic, zero-alloc, 100%-test covered Quadtree for golang
affiliates-jekyll-theme - Affiliates - Jekyll Blogging Theme for Affiliate Marketers
algorithms - CLRS study. Codes are written with golang.
golang-set - A simple, battle-tested and generic set type for the Go language. Trusted by Docker, 1Password, Ethereum and Hashicorp.
mediumish-theme-jekyll - Jekyll Template - Mediumish
1brc - 1️⃣🐝🏎️ The One Billion Row Challenge -- A fun exploration of how quickly 1B rows from a text file can be aggregated with Java
gogu - A comprehensive, reusable and efficient concurrent-safe generics utility functions and data structures library.
1brc - Solution to One Billion Rows Challenge in Golang.
get-o-o - Website that provides detailed information about openSUSE distributions