2023-01-20 14:01:45 -05:00
2023-01-20 09:00:49 -08:00
2023-01-20 13:41:49 -05:00
2023-01-20 14:01:45 -05:00
2023-01-20 12:08:48 -05:00
2023-01-20 11:56:33 -05:00
2023-01-20 18:51:16 +01:00
2023-01-20 19:27:58 +01:00
2023-01-20 17:38:56 +01:00
2023-01-14 10:11:46 +01:00
2023-01-14 21:47:49 +01:00
2023-01-20 17:09:05 +00:00
2023-01-13 17:51:01 +01:00
2023-01-16 10:57:34 +01:00

Parallel hashmap benchmarks

Benchmarks

TBW

Detailed results

Folder

  • gcc-x64: GCC 11, x64
  • clang-x64: Clang 12, x64
  • vs-x64: Visual Studio 2019, x64
  • clang-arm64: Clang 12 ARM64
  • gcc-x86: GCC 11, x86
  • clang-x86: Clang 12, x86
  • vs-x86: Visual Studio 2019, x86

Summary results

GCC 11, x64

main.cpp
Number of threads: 16
                boost::unordered_flat_map, single threaded:  8614 ms
  boost::unordered_flat_map, single threaded, shared_mutex: 12495 ms
   boost::unordered_flat_map, single threaded, rw_spinlock:  9428 ms
                           concurrent_foa, single threaded: 13076 ms
       concurrent_foa, tbb::spin_rw_mutex, single threaded: 13117 ms
        concurrent_foa, std::shared_mutex, single threaded: 16436 ms
                 tbb::concurrent_hash_map, single threaded: 22712 ms
       boost::unordered_flat_map, sharded_prehashed<mutex>:  6695 ms
boost::unordered_flat_map, sharded_prehashed<shared_mutex>: 13536 ms
 boost::unordered_flat_map, sharded_prehashed<rw_spinlock>:  7520 ms
    boost::unordered_flat_map, sharded isolated, prehashed:  7778 ms
                                            concurrent foa:  4638 ms
                        concurrent foa, tbb::spin_rw_mutex:  4904 ms
                         concurrent foa, std::shared_mutex:  5011 ms
                                  tbb::concurrent_hash_map:  7464 ms
                   gtl::parallel_flat_hash_map<std::mutex>:  6696 ms
            gtl::parallel_flat_hash_map<std::shared_mutex>: 35428 ms
                  gtl::parallel_flat_hash_map<rw_spinlock>:  9691 ms

Clang 12, x64

main.cpp
Number of threads: 16
                boost::unordered_flat_map, single threaded:  9198 ms
  boost::unordered_flat_map, single threaded, shared_mutex: 12989 ms
   boost::unordered_flat_map, single threaded, rw_spinlock: 10287 ms
                           concurrent_foa, single threaded: 12574 ms
       concurrent_foa, tbb::spin_rw_mutex, single threaded: 12533 ms
        concurrent_foa, std::shared_mutex, single threaded: 14659 ms
                 tbb::concurrent_hash_map, single threaded: 23231 ms
       boost::unordered_flat_map, sharded_prehashed<mutex>:  6662 ms
boost::unordered_flat_map, sharded_prehashed<shared_mutex>: 11109 ms
 boost::unordered_flat_map, sharded_prehashed<rw_spinlock>:  7316 ms
    boost::unordered_flat_map, sharded isolated, prehashed:  7575 ms
                                            concurrent foa:  4888 ms
                        concurrent foa, tbb::spin_rw_mutex:  4604 ms
                         concurrent foa, std::shared_mutex:  5049 ms
                                  tbb::concurrent_hash_map:  7716 ms
                   gtl::parallel_flat_hash_map<std::mutex>:  8266 ms
            gtl::parallel_flat_hash_map<std::shared_mutex>: 24839 ms
                  gtl::parallel_flat_hash_map<rw_spinlock>: 12725 ms

Visual Studio 2019, x64

Clang 12, ARM64

main.cpp
Number of threads: 8
                boost::unordered_flat_map, single threaded:  5675 ms
  boost::unordered_flat_map, single threaded, shared_mutex: 10249 ms
   boost::unordered_flat_map, single threaded, rw_spinlock:  6047 ms
                           concurrent_foa, single threaded:  7302 ms
       concurrent_foa, tbb::spin_rw_mutex, single threaded:  7412 ms
        concurrent_foa, std::shared_mutex, single threaded: 11663 ms
                 tbb::concurrent_hash_map, single threaded: 17471 ms
       boost::unordered_flat_map, sharded_prehashed<mutex>:  5493 ms
boost::unordered_flat_map, sharded_prehashed<shared_mutex>: 11429 ms
 boost::unordered_flat_map, sharded_prehashed<rw_spinlock>:  3445 ms
    boost::unordered_flat_map, sharded isolated, prehashed:  4789 ms
                                            concurrent foa:  3814 ms
                        concurrent foa, tbb::spin_rw_mutex:  3639 ms
                         concurrent foa, std::shared_mutex:  4633 ms
                                  tbb::concurrent_hash_map:  5347 ms
                   gtl::parallel_flat_hash_map<std::mutex>:  6156 ms
            gtl::parallel_flat_hash_map<std::shared_mutex>: 11457 ms
                  gtl::parallel_flat_hash_map<rw_spinlock>:  3696 ms

GCC 11, x86

main.cpp
Number of threads: 16
                boost::unordered_flat_map, single threaded:   959 ms
  boost::unordered_flat_map, single threaded, shared_mutex:  1439 ms
   boost::unordered_flat_map, single threaded, rw_spinlock:  1152 ms
                           concurrent_foa, single threaded:  1477 ms
       concurrent_foa, tbb::spin_rw_mutex, single threaded:  1478 ms
        concurrent_foa, std::shared_mutex, single threaded:  1759 ms
                 tbb::concurrent_hash_map, single threaded:  2277 ms
       boost::unordered_flat_map, sharded_prehashed<mutex>:   851 ms
boost::unordered_flat_map, sharded_prehashed<shared_mutex>:  1447 ms
 boost::unordered_flat_map, sharded_prehashed<rw_spinlock>:   692 ms
    boost::unordered_flat_map, sharded isolated, prehashed:   806 ms
                                            concurrent foa:   655 ms
                        concurrent foa, tbb::spin_rw_mutex:   643 ms
                         concurrent foa, std::shared_mutex:   744 ms
                                  tbb::concurrent_hash_map:   837 ms
                   gtl::parallel_flat_hash_map<std::mutex>:  1151 ms
            gtl::parallel_flat_hash_map<std::shared_mutex>:  1274 ms
                  gtl::parallel_flat_hash_map<rw_spinlock>:   835 ms

Clang 12, x86

main.cpp
Number of threads: 16
                boost::unordered_flat_map, single threaded:  1084 ms
  boost::unordered_flat_map, single threaded, shared_mutex:  1485 ms
   boost::unordered_flat_map, single threaded, rw_spinlock:  1193 ms
                           concurrent_foa, single threaded:  1366 ms
       concurrent_foa, tbb::spin_rw_mutex, single threaded:  1382 ms
        concurrent_foa, std::shared_mutex, single threaded:  1661 ms
                 tbb::concurrent_hash_map, single threaded:  2372 ms
       boost::unordered_flat_map, sharded_prehashed<mutex>:   758 ms
boost::unordered_flat_map, sharded_prehashed<shared_mutex>:  1996 ms
 boost::unordered_flat_map, sharded_prehashed<rw_spinlock>:   581 ms
    boost::unordered_flat_map, sharded isolated, prehashed:   837 ms
                                            concurrent foa:   636 ms
                        concurrent foa, tbb::spin_rw_mutex:   606 ms
                         concurrent foa, std::shared_mutex:   723 ms
                                  tbb::concurrent_hash_map:   850 ms
                   gtl::parallel_flat_hash_map<std::mutex>:  1017 ms
            gtl::parallel_flat_hash_map<std::shared_mutex>:  2425 ms
                  gtl::parallel_flat_hash_map<rw_spinlock>:   969 ms

Visual Studio 2019, x86

Description
Mirrored via gitea-mirror
Readme 111 MiB