think-cell-library
gtl
think-cell-library | gtl | |
---|---|---|
2 | 5 | |
363 | 93 | |
5.5% | - | |
3.7 | 7.1 | |
13 days ago | about 1 month ago | |
C++ | C++ | |
Boost Software License 1.0 | 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.
think-cell-library
-
Inside boost::concurrent_flat_map
We at think-cell use that pattern a lot in our library.
-
C++ Jobs - Q3 2023
Library * We use Boost throughout our code, e.g., Boost.Spirit for parsing. * We have our own range library, in the same spirit as Boost.Range or Eric Niebler’s range-v3, but going further, for example, by unifying internal and external iteration. We gave a talk about it, and most of the code is public. * We develop our own cross-platform library to support Mac and Windows with a single code base. * We have our own reference-counting and persistence libraries to save and restore whole object trees. * We have an extensive bug reporting infrastructure. Assertions and error checks stay in the release code, and our software automatically reports bugs to our server. The server analyzes the bug, categorizes it and files it in a database that all developers can access. If an update fixes the bug, the user can download the update directly from a bug response web page.
gtl
-
Inside boost::concurrent_flat_map
gtl library author here. Very nice writeup! Reading it made me think, and I believe I know why gtl::parallel_flat_hash_map performs comparatively worse for high-skew scenarios (just pushed a fix in gtl).
-
Boost 1.81 will have boost::unordered_flat_map...
I do this as well in my phmap and gtl implementations. It makes the tables look worse in benchmarks like the above, but prevents really bad surprises occasionally.
-
Comprehensive C++ Hashmap Benchmarks 2022
Thanks a lot for the great benchmark, Martin. Glad you used different hash functions, because I do sacrifice some speed to make sure that the performance of my hash maps doesn't degrade drastically with poor hash functions. Happy to see that my phmap and gtl (the C++20 version) performed well.
-
It is now trivial to cache pure functions with highly efficient, concurrent cache.
This is very easy to do with the latest version of gtl. And it is extremely efficient, as the caching mechanism uses the parallel hashmap, which internally is divided into N submaps each with its own mutex, reducing mutex contention to a minimum.
-
Updating map_benchmarks: Send your hashmaps!
AFAIK sparsepp has been dropped entirely in favor of the containers in GTL: https://github.com/greg7mdp/gtl
What are some alternatives?
scnlib - scanf for modern C++
eytzinger - Cache-friendly associative STL-like container with an Eytzinger (BFS) layout for C++
LeetCode - This repository contains the solutions and explanations to the algorithm problems on LeetCode. Only medium or above are included. All are written in C++/Python and implemented by myself. The problems attempted multiple times are labelled with hyperlinks.
fph-table - Flash Perfect Hash Table: an implementation of a dynamic perfect hash table, extremely fast for lookup
C++ Actor Framework - An Open Source Implementation of the Actor Model in C++
Google Test - GoogleTest - Google Testing and Mocking Framework
Apache Arrow - Apache Arrow is a multi-language toolbox for accelerated data interchange and in-memory processing
flat_hash_map - A very fast hashtable
etl - Embedded Template Library
google-sparsehash - Clone of google-sparsehash
C-Plus-Plus - Collection of various algorithms in mathematics, machine learning, computer science and physics implemented in C++ for educational purposes.
libcudacxx - [ARCHIVED] The C++ Standard Library for your entire system. See https://github.com/NVIDIA/cccl