diff --git a/README.md b/README.md index d616a5b8..e4ca3081 100644 --- a/README.md +++ b/README.md @@ -21,26 +21,26 @@ TBW ``` main.cpp Number of threads: 16 - boost::unordered_flat_map, single threaded: 7792 ms - boost::unordered_flat_map, single threaded, shared_mutex: 11724 ms - boost::unordered_flat_map, single threaded, rw_spinlock: 9313 ms - cfoa, single threaded: 12702 ms - cfoa, tbb::spin_rw_mutex, single threaded: 12496 ms - cfoa, std::shared_mutex, single threaded: 14289 ms - foa::concurrent_table, single threaded: 12325 ms - tbb::concurrent_hash_map, single threaded: 22007 ms - boost::unordered_flat_map, sharded_prehashed: 6556 ms -boost::unordered_flat_map, sharded_prehashed: 22826 ms - boost::unordered_flat_map, sharded_prehashed: 7874 ms - boost::unordered_flat_map, sharded isolated, prehashed: 6432 ms - cfoa: 4576 ms - cfoa, tbb::spin_rw_mutex: 4655 ms - cfoa, std::shared_mutex: 4899 ms - foa::concurrent_table: 4568 ms - tbb::concurrent_hash_map: 7418 ms - gtl::parallel_flat_hash_map: 7761 ms - gtl::parallel_flat_hash_map: 17729 ms - gtl::parallel_flat_hash_map: 10102 ms + boost::unordered_flat_map, single threaded: 7770 ms + boost::unordered_flat_map, single threaded, shared_mutex: 11703 ms + boost::unordered_flat_map, single threaded, rw_spinlock: 9284 ms + cfoa, single threaded: 12680 ms + cfoa, tbb::spin_rw_mutex, single threaded: 12470 ms + cfoa, std::shared_mutex, single threaded: 14257 ms + foa::concurrent_table, single threaded: 12315 ms + tbb::concurrent_hash_map, single threaded: 21969 ms + boost::unordered_flat_map, sharded_prehashed: 6619 ms +boost::unordered_flat_map, sharded_prehashed: 15876 ms + boost::unordered_flat_map, sharded_prehashed: 7103 ms + boost::unordered_flat_map, sharded isolated, prehashed: 6077 ms + cfoa: 4383 ms + cfoa, tbb::spin_rw_mutex: 4934 ms + cfoa, std::shared_mutex: 4854 ms + foa::concurrent_table: 4765 ms + tbb::concurrent_hash_map: 7557 ms + gtl::parallel_flat_hash_map: 7867 ms + gtl::parallel_flat_hash_map: 15433 ms + gtl::parallel_flat_hash_map: 9948 ms ``` @@ -49,26 +49,26 @@ boost::unordered_flat_map, sharded_prehashed: 22826 ms ``` main.cpp Number of threads: 16 - boost::unordered_flat_map, single threaded: 9241 ms - boost::unordered_flat_map, single threaded, shared_mutex: 12857 ms - boost::unordered_flat_map, single threaded, rw_spinlock: 10253 ms - cfoa, single threaded: 12662 ms - cfoa, tbb::spin_rw_mutex, single threaded: 12691 ms - cfoa, std::shared_mutex, single threaded: 14526 ms - foa::concurrent_table, single threaded: 12647 ms - tbb::concurrent_hash_map, single threaded: 23287 ms - boost::unordered_flat_map, sharded_prehashed: 6184 ms -boost::unordered_flat_map, sharded_prehashed: 17724 ms - boost::unordered_flat_map, sharded_prehashed: 7087 ms - boost::unordered_flat_map, sharded isolated, prehashed: 6993 ms - cfoa: 4548 ms - cfoa, tbb::spin_rw_mutex: 4976 ms - cfoa, std::shared_mutex: 5098 ms - foa::concurrent_table: 4812 ms - tbb::concurrent_hash_map: 7533 ms - gtl::parallel_flat_hash_map: 8016 ms - gtl::parallel_flat_hash_map: 22204 ms - gtl::parallel_flat_hash_map: 12188 ms + boost::unordered_flat_map, single threaded: 9533 ms + boost::unordered_flat_map, single threaded, shared_mutex: 13137 ms + boost::unordered_flat_map, single threaded, rw_spinlock: 10504 ms + cfoa, single threaded: 12909 ms + cfoa, tbb::spin_rw_mutex, single threaded: 12983 ms + cfoa, std::shared_mutex, single threaded: 14848 ms + foa::concurrent_table, single threaded: 12947 ms + tbb::concurrent_hash_map, single threaded: 23977 ms + boost::unordered_flat_map, sharded_prehashed: 6204 ms +boost::unordered_flat_map, sharded_prehashed: 13453 ms + boost::unordered_flat_map, sharded_prehashed: 7383 ms + boost::unordered_flat_map, sharded isolated, prehashed: 6916 ms + cfoa: 4707 ms + cfoa, tbb::spin_rw_mutex: 4781 ms + cfoa, std::shared_mutex: 5131 ms + foa::concurrent_table: 4908 ms + tbb::concurrent_hash_map: 7562 ms + gtl::parallel_flat_hash_map: 8099 ms + gtl::parallel_flat_hash_map: 18574 ms + gtl::parallel_flat_hash_map: 11900 ms ``` @@ -77,26 +77,26 @@ boost::unordered_flat_map, sharded_prehashed: 17724 ms ``` main.cpp Number of threads: 4 - boost::unordered_flat_map, single threaded: 21162 ms - boost::unordered_flat_map, single threaded, shared_mutex: 25044 ms - boost::unordered_flat_map, single threaded, rw_spinlock: 23623 ms - cfoa, single threaded: 24545 ms - cfoa, tbb::spin_rw_mutex, single threaded: 25643 ms - cfoa, std::shared_mutex, single threaded: 25395 ms - foa::concurrent_table, single threaded: 25180 ms - tbb::concurrent_hash_map, single threaded: 43087 ms - boost::unordered_flat_map, sharded_prehashed: 11143 ms -boost::unordered_flat_map, sharded_prehashed: 9192 ms - boost::unordered_flat_map, sharded_prehashed: 9763 ms - boost::unordered_flat_map, sharded isolated, prehashed: 10487 ms - cfoa: 8234 ms - cfoa, tbb::spin_rw_mutex: 8963 ms - cfoa, std::shared_mutex: 9408 ms - foa::concurrent_table: 8620 ms - tbb::concurrent_hash_map: 14492 ms - gtl::parallel_flat_hash_map: 11632 ms - gtl::parallel_flat_hash_map: 10297 ms - gtl::parallel_flat_hash_map: 12239 ms + boost::unordered_flat_map, single threaded: 23288 ms + boost::unordered_flat_map, single threaded, shared_mutex: 26618 ms + boost::unordered_flat_map, single threaded, rw_spinlock: 24765 ms + cfoa, single threaded: 24726 ms + cfoa, tbb::spin_rw_mutex, single threaded: 25240 ms + cfoa, std::shared_mutex, single threaded: 25126 ms + foa::concurrent_table, single threaded: 24372 ms + tbb::concurrent_hash_map, single threaded: 42235 ms + boost::unordered_flat_map, sharded_prehashed: 10752 ms +boost::unordered_flat_map, sharded_prehashed: 9122 ms + boost::unordered_flat_map, sharded_prehashed: 9780 ms + boost::unordered_flat_map, sharded isolated, prehashed: 10422 ms + cfoa: 8476 ms + cfoa, tbb::spin_rw_mutex: 8788 ms + cfoa, std::shared_mutex: 8894 ms + foa::concurrent_table: 9411 ms + tbb::concurrent_hash_map: 14647 ms + gtl::parallel_flat_hash_map: 13011 ms + gtl::parallel_flat_hash_map: 10819 ms + gtl::parallel_flat_hash_map: 12231 ms ``` @@ -105,26 +105,26 @@ boost::unordered_flat_map, sharded_prehashed: 9192 ms ``` main.cpp Number of threads: 8 - boost::unordered_flat_map, single threaded: 5810 ms - boost::unordered_flat_map, single threaded, shared_mutex: 10264 ms - boost::unordered_flat_map, single threaded, rw_spinlock: 6061 ms - cfoa, single threaded: 7547 ms + boost::unordered_flat_map, single threaded: 6170 ms + boost::unordered_flat_map, single threaded, shared_mutex: 10145 ms + boost::unordered_flat_map, single threaded, rw_spinlock: 5972 ms + cfoa, single threaded: 7567 ms cfoa, tbb::spin_rw_mutex, single threaded: 7573 ms - cfoa, std::shared_mutex, single threaded: 11706 ms - foa::concurrent_table, single threaded: 7434 ms - tbb::concurrent_hash_map, single threaded: 17415 ms - boost::unordered_flat_map, sharded_prehashed: 5165 ms -boost::unordered_flat_map, sharded_prehashed: 11283 ms - boost::unordered_flat_map, sharded_prehashed: 3399 ms + cfoa, std::shared_mutex, single threaded: 11623 ms + foa::concurrent_table, single threaded: 7416 ms + tbb::concurrent_hash_map, single threaded: 17459 ms + boost::unordered_flat_map, sharded_prehashed: 5589 ms +boost::unordered_flat_map, sharded_prehashed: 11327 ms + boost::unordered_flat_map, sharded_prehashed: 3423 ms boost::unordered_flat_map, sharded isolated, prehashed: 4456 ms - cfoa: 3666 ms - cfoa, tbb::spin_rw_mutex: 3893 ms - cfoa, std::shared_mutex: 4596 ms - foa::concurrent_table: 3712 ms - tbb::concurrent_hash_map: 5476 ms - gtl::parallel_flat_hash_map: 6391 ms - gtl::parallel_flat_hash_map: 11640 ms - gtl::parallel_flat_hash_map: 3749 ms + cfoa: 3789 ms + cfoa, tbb::spin_rw_mutex: 3685 ms + cfoa, std::shared_mutex: 4611 ms + foa::concurrent_table: 3650 ms + tbb::concurrent_hash_map: 5350 ms + gtl::parallel_flat_hash_map: 6053 ms + gtl::parallel_flat_hash_map: 11545 ms + gtl::parallel_flat_hash_map: 3733 ms ``` @@ -133,26 +133,26 @@ boost::unordered_flat_map, sharded_prehashed: 11283 ms ``` main.cpp Number of threads: 16 - boost::unordered_flat_map, single threaded: 1054 ms - boost::unordered_flat_map, single threaded, shared_mutex: 1482 ms - boost::unordered_flat_map, single threaded, rw_spinlock: 1129 ms - cfoa, single threaded: 1488 ms + boost::unordered_flat_map, single threaded: 1079 ms + boost::unordered_flat_map, single threaded, shared_mutex: 1481 ms + boost::unordered_flat_map, single threaded, rw_spinlock: 1130 ms + cfoa, single threaded: 1498 ms cfoa, tbb::spin_rw_mutex, single threaded: 1499 ms - cfoa, std::shared_mutex, single threaded: 1778 ms + cfoa, std::shared_mutex, single threaded: 1776 ms foa::concurrent_table, single threaded: 1472 ms - tbb::concurrent_hash_map, single threaded: 2223 ms - boost::unordered_flat_map, sharded_prehashed: 788 ms -boost::unordered_flat_map, sharded_prehashed: 1053 ms - boost::unordered_flat_map, sharded_prehashed: 792 ms - boost::unordered_flat_map, sharded isolated, prehashed: 782 ms - cfoa: 680 ms - cfoa, tbb::spin_rw_mutex: 693 ms - cfoa, std::shared_mutex: 711 ms - foa::concurrent_table: 808 ms - tbb::concurrent_hash_map: 904 ms - gtl::parallel_flat_hash_map: 1098 ms - gtl::parallel_flat_hash_map: 1306 ms - gtl::parallel_flat_hash_map: 912 ms + tbb::concurrent_hash_map, single threaded: 2225 ms + boost::unordered_flat_map, sharded_prehashed: 764 ms +boost::unordered_flat_map, sharded_prehashed: 1156 ms + boost::unordered_flat_map, sharded_prehashed: 772 ms + boost::unordered_flat_map, sharded isolated, prehashed: 760 ms + cfoa: 671 ms + cfoa, tbb::spin_rw_mutex: 694 ms + cfoa, std::shared_mutex: 762 ms + foa::concurrent_table: 755 ms + tbb::concurrent_hash_map: 863 ms + gtl::parallel_flat_hash_map: 1099 ms + gtl::parallel_flat_hash_map: 1776 ms + gtl::parallel_flat_hash_map: 982 ms ``` @@ -161,26 +161,26 @@ boost::unordered_flat_map, sharded_prehashed: 1053 ms ``` main.cpp Number of threads: 16 - boost::unordered_flat_map, single threaded: 1135 ms + boost::unordered_flat_map, single threaded: 1130 ms boost::unordered_flat_map, single threaded, shared_mutex: 1553 ms - boost::unordered_flat_map, single threaded, rw_spinlock: 1226 ms - cfoa, single threaded: 1440 ms - cfoa, tbb::spin_rw_mutex, single threaded: 1455 ms - cfoa, std::shared_mutex, single threaded: 1765 ms - foa::concurrent_table, single threaded: 1463 ms - tbb::concurrent_hash_map, single threaded: 2388 ms - boost::unordered_flat_map, sharded_prehashed: 750 ms -boost::unordered_flat_map, sharded_prehashed: 1432 ms - boost::unordered_flat_map, sharded_prehashed: 673 ms - boost::unordered_flat_map, sharded isolated, prehashed: 791 ms - cfoa: 622 ms - cfoa, tbb::spin_rw_mutex: 646 ms - cfoa, std::shared_mutex: 708 ms - foa::concurrent_table: 882 ms - tbb::concurrent_hash_map: 887 ms - gtl::parallel_flat_hash_map: 1013 ms - gtl::parallel_flat_hash_map: 2014 ms - gtl::parallel_flat_hash_map: 909 ms + boost::unordered_flat_map, single threaded, rw_spinlock: 1223 ms + cfoa, single threaded: 1439 ms + cfoa, tbb::spin_rw_mutex, single threaded: 1456 ms + cfoa, std::shared_mutex, single threaded: 1763 ms + foa::concurrent_table, single threaded: 1453 ms + tbb::concurrent_hash_map, single threaded: 2391 ms + boost::unordered_flat_map, sharded_prehashed: 766 ms +boost::unordered_flat_map, sharded_prehashed: 2573 ms + boost::unordered_flat_map, sharded_prehashed: 676 ms + boost::unordered_flat_map, sharded isolated, prehashed: 755 ms + cfoa: 645 ms + cfoa, tbb::spin_rw_mutex: 640 ms + cfoa, std::shared_mutex: 732 ms + foa::concurrent_table: 832 ms + tbb::concurrent_hash_map: 877 ms + gtl::parallel_flat_hash_map: 1040 ms + gtl::parallel_flat_hash_map: 1387 ms + gtl::parallel_flat_hash_map: 1182 ms ``` @@ -189,25 +189,25 @@ boost::unordered_flat_map, sharded_prehashed: 1432 ms ``` main.cpp Number of threads: 4 - boost::unordered_flat_map, single threaded: 1391 ms - boost::unordered_flat_map, single threaded, shared_mutex: 1748 ms - boost::unordered_flat_map, single threaded, rw_spinlock: 1520 ms - cfoa, single threaded: 2131 ms - cfoa, tbb::spin_rw_mutex, single threaded: 2282 ms - cfoa, std::shared_mutex, single threaded: 2334 ms - foa::concurrent_table, single threaded: 2010 ms - tbb::concurrent_hash_map, single threaded: 3947 ms - boost::unordered_flat_map, sharded_prehashed: 995 ms -boost::unordered_flat_map, sharded_prehashed: 694 ms - boost::unordered_flat_map, sharded_prehashed: 707 ms - boost::unordered_flat_map, sharded isolated, prehashed: 871 ms - cfoa: 833 ms - cfoa, tbb::spin_rw_mutex: 856 ms - cfoa, std::shared_mutex: 838 ms - foa::concurrent_table: 914 ms - tbb::concurrent_hash_map: 1516 ms - gtl::parallel_flat_hash_map: 1081 ms - gtl::parallel_flat_hash_map: 941 ms - gtl::parallel_flat_hash_map: 807 ms + boost::unordered_flat_map, single threaded: 1349 ms + boost::unordered_flat_map, single threaded, shared_mutex: 1734 ms + boost::unordered_flat_map, single threaded, rw_spinlock: 1513 ms + cfoa, single threaded: 2042 ms + cfoa, tbb::spin_rw_mutex, single threaded: 2099 ms + cfoa, std::shared_mutex, single threaded: 2307 ms + foa::concurrent_table, single threaded: 2070 ms + tbb::concurrent_hash_map, single threaded: 4069 ms + boost::unordered_flat_map, sharded_prehashed: 1100 ms +boost::unordered_flat_map, sharded_prehashed: 869 ms + boost::unordered_flat_map, sharded_prehashed: 677 ms + boost::unordered_flat_map, sharded isolated, prehashed: 939 ms + cfoa: 782 ms + cfoa, tbb::spin_rw_mutex: 772 ms + cfoa, std::shared_mutex: 973 ms + foa::concurrent_table: 875 ms + tbb::concurrent_hash_map: 1438 ms + gtl::parallel_flat_hash_map: 1176 ms + gtl::parallel_flat_hash_map: 935 ms + gtl::parallel_flat_hash_map: 910 ms ```