From 4b18e563c90792cba2aadbe047bdf80d174d2dcb Mon Sep 17 00:00:00 2001 From: Sven Gothel Date: Sat, 2 Jan 2021 09:34:57 +0100 Subject: Add: darray, cow_darray, cow_iterator; Adjust cow_vector to cow_darray findings (deprecated); Performance enhancements cow_darray, cow_vector design changes / notes: - Aligned all typedef's names etc between both implementations for easier review - Removed direct element access, as this would be only valid if Value_type is a std:share_ptr, assuming the underlying shared storage has been pulled. Use iterator! - Introducing immutable const_iterator (a jau::cow_ro_iterator) and mutable iterator (a jau::cow_rw_iterator). Both types hold the underling's iterator and also either the lock-free shared snapshot (const_iterator) or hold the lock and a copy of the storage (iterator). This guarantees an efficient std API aligned operation, keeping alove std::shared_ptr references. - Removed for_each_cow: Use std::for_each with our new const_iterator or iterator etc... Performance changes / notes: - cow_darray: Use fixed golden-ratio for grow-factor in push_back(), reducing too many copies. - cow_darray::push_back(..): No copy on size < capacity, just push_back into underling, dramatically reducing copies. Guaranteed correct using cow_darray + darray, as darray increments end_ iterator after the new element has been added. - Always use pre-increment/decrement, avoiding copy with post-* variant. cow_vector fixes (learned from working with cow_darray) - reserve(): Only is new_capacity > capacity, then need copy_ctor storage - operator=(cow_vector&& x): Hold both cow_vector's write-mutex - pop_back(): Only if not empty - +++ Performance seems to fluctuate on the allocator and we might want resolve this with a custom pooled alloctor. This is obvious when comparing the 'empty' samples with 'reserved', the latter reserve whole memory of the std::vector and jau::darray upfront. Performance on arm64-raspi4 jau::cow_vector vs jau::cow_darray: - sequential fill and list O(1): cow_vector is ~30 times slower (starting empty) (delta due to cow_darray capacity usage, less copies) - unique fill and list O(n*n): cow_vector is 2-3 times slower (starting empty) (most time used for equal time dereferencing) Performance on arm64-raspi4 std::vector vs jau::darray: - sequential fill and list iterator O(1): jau::darray is ~0% - 40% slower (50 .. 1000) (starting empty) (we may call this almost equal, probably allocator related) - unique fill and list iterator O(n*n): std::vector is ~0% - 23% slower (50 .. 1000) (starting empty) (almost equal, most time used for equal time dereferencing) +++ Performance on amd64 jau::cow_vector vs jau::cow_darray: - sequential fill and list O(1): cow_vector is ~38 times slower (starting empty) (delta due to cow_darray capacity usage, less copies) - unique fill and list O(n*n): cow_vector is ~2 times slower (starting empty) (most time used for equal time dereferencing) Performance on amd64 std::vector vs jau::darray: - sequential fill and list iterator O(1): jau::darray is ~0% - 20% slower (50 .. 1000) (starting empty) (we may call this almost equal, probably allocator related) - unique fill and list iterator O(n*n): std::vector is ~0% - 30% slower (50 .. 1000) (starting empty) (almost equal, most time used for equal time dereferencing) +++ Memory ratio allocation/size jau::cow_vector vs jau::cow_darray having size: - 50: 2 vs 1.1 - 100: 2 vs 1.44 - 1000: 2 vs 1.6 - Hence cow_darray golden-ratio growth factor is more efficient on size + perf. Memory ratio allocation/size std::vector vs jau::darray having size: - 50: 1.28 vs 1.10 - 100: 1.28 vs 1.44 - 1000: 1.03 vs 1.60 - Hence cow_darray golden-ratio growth factor is less efficient on big sizes (but configurable) --- doc/test/test_cow_darray_perf01.amd64.log | 350 ++++++++++++++++++++++++ doc/test/test_cowvector_perf01.amd64.log | 153 ----------- doc/test/test_cowvector_perf01.arm64-raspi4.log | 153 ----------- doc/test/test_hashset_perf01.amd64.log | 117 -------- doc/test/test_hashset_perf01.arm64-raspi4.log | 117 -------- 5 files changed, 350 insertions(+), 540 deletions(-) create mode 100644 doc/test/test_cow_darray_perf01.amd64.log delete mode 100644 doc/test/test_cowvector_perf01.amd64.log delete mode 100644 doc/test/test_cowvector_perf01.arm64-raspi4.log delete mode 100644 doc/test/test_hashset_perf01.amd64.log delete mode 100644 doc/test/test_hashset_perf01.arm64-raspi4.log (limited to 'doc/test') diff --git a/doc/test/test_cow_darray_perf01.amd64.log b/doc/test/test_cow_darray_perf01.amd64.log new file mode 100644 index 0000000..69e64eb --- /dev/null +++ b/doc/test/test_cow_darray_perf01.amd64.log @@ -0,0 +1,350 @@ +COMMANDLINE scripts/test_cow_darray_perf01.sh -v normal +EXE_WRAPPER nice -20 +logbasename test_cow_darray_perf01.amd64 +logfile /usr/local/projects/zafena/jaulib/doc/test/test_cow_darray_perf01.amd64.0.log +valgrindlogfile /usr/local/projects/zafena/jaulib/doc/test/test_cow_darray_perf01.amd64.valgrind.0.log +callgrindoutfile /usr/local/projects/zafena/jaulib/doc/test/test_cow_darray_perf01.amd64.callgrind.0.out +nice -20 /usr/local/projects/zafena/jaulib/build-amd64/test/test_cow_darray_perf01 -v normal +argc 3, auto_run 0, perf_analysis 0 +Mem: stdvec_empty_ 01 (full_): Elements 50 x 16 bytes; CAlloc[ 1,024 bytes, alloc[balance 1 = 7 - 6]], 1.280000 ratio +Mem: stdvec_empty_ 01 (full_): Elements 100 x 16 bytes; CAlloc[ 2,048 bytes, alloc[balance 1 = 8 - 7]], 1.280000 ratio +Mem: stdvec_empty_ 01 (full_): Elements 1,000 x 16 bytes; CAlloc[ 16,384 bytes, alloc[balance 1 = 11 - 10]], 1.024000 ratio +Mem: darray_empty_ 01 (full_): Elements 50 x 16 bytes; CAlloc[ 880 bytes, alloc[balance 1 = 9 - 8]], 1.100000 ratio +Mem: darray_empty_ 01 (full_): Elements 100 x 16 bytes; CAlloc[ 2,304 bytes, alloc[balance 1 = 11 - 10]], 1.440000 ratio +Mem: darray_empty_ 01 (full_): Elements 1,000 x 16 bytes; CAlloc[ 25,552 bytes, alloc[balance 1 = 16 - 15]], 1.597000 ratio +Mem: cowstdvec_empty_ 01 (full_): Elements 50 x 16 bytes; CAlloc[ 1,568 bytes, alloc[balance 1 = 2 - 1]], 1.960000 ratio +Mem: cowstdvec_empty_ 01 (full_): Elements 100 x 16 bytes; CAlloc[ 3,168 bytes, alloc[balance 1 = 2 - 1]], 1.980000 ratio +Mem: cowstdvec_empty_ 01 (full_): Elements 1,000 x 16 bytes; CAlloc[ 31,968 bytes, alloc[balance 1 = 2 - 1]], 1.998000 ratio +Mem: cowdarray_empty_ 01 (full_): Elements 50 x 16 bytes; CAlloc[ 880 bytes, alloc[balance 1 = 1 - 0]], 1.100000 ratio +Mem: cowdarray_empty_ 01 (full_): Elements 100 x 16 bytes; CAlloc[ 2,304 bytes, alloc[balance 1 = 1 - 0]], 1.440000 ratio +Mem: cowdarray_empty_ 01 (full_): Elements 1,000 x 16 bytes; CAlloc[ 25,552 bytes, alloc[balance 1 = 1 - 0]], 1.597000 ratio + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +test_cow_darray_perf01 is a Catch v3.0.0-preview.3 host application. +Run with -? for options + +------------------------------------------------------------------------------- +Perf Test 01 - Fill Sequential and List, empty and reserve +------------------------------------------------------------------------------- +/test/test_cow_darray_perf01.cpp:504 +............................................................................... + +benchmark name samples iterations estimated + mean low mean high mean + std dev low std dev high std dev +------------------------------------------------------------------------------- +STD_Vector_empty_idx FillSeq_List +50 100 36 2.1168 ms + 587.887 ns 586.534 ns 592.851 ns + 11.6643 ns 2.59561 ns 26.681 ns + +STD_Vector_empty_idx FillSeq_List +100 100 21 2.1273 ms + 1.01551 us 1.01076 us 1.02473 us + 32.6187 ns 19.7948 ns 53.2098 ns + +STD_Vector_empty_idx FillSeq_List +1000 100 3 2.3295 ms + 7.7587 us 7.75414 us 7.77689 us + 42.9198 ns 4.0468 ns 101.951 ns + +STD_Vector_empty_itr FillSeq_List +50 100 36 2.1276 ms + 586.001 ns 585.784 ns 586.568 ns + 1.65525 ns 0.465353 ns 3.27567 ns + +STD_Vector_empty_itr FillSeq_List +100 100 21 2.0895 ms + 994.921 ns 988.919 ns 1.00582 us + 40.1812 ns 25.3082 ns 57.6708 ns + +STD_Vector_empty_itr FillSeq_List +1000 100 3 2.3886 ms + 7.87883 us 7.816 us 7.98781 us + 409.816 ns 278.711 ns 740.356 ns + +JAU_DArray_empty_idx FillSeq_List +50 100 35 2.114 ms + 598.635 ns 596.777 ns 605.661 ns + 16.3576 ns 3.66866 ns 38.0961 ns + +JAU_DArray_empty_idx FillSeq_List +100 100 19 2.1223 ms + 1.106 us 1.10402 us 1.1153 us + 18.5808 ns 0.490943 ns 44.1982 ns + +JAU_DArray_empty_idx FillSeq_List +1000 100 3 2.8092 ms + 9.3225 us 9.29807 us 9.38497 us + 184.594 ns 87.6997 ns 341.201 ns + +JAU_DArray_empty_itr FillSeq_List +50 100 36 2.142 ms + 596.304 ns 592.709 ns 604.02 ns + 25.6078 ns 13.9646 ns 44.649 ns + +JAU_DArray_empty_itr FillSeq_List +100 100 19 2.1546 ms + 1.1111 us 1.10853 us 1.11751 us + 18.3155 ns 2.03707 ns 34.3155 ns + +JAU_DArray_empty_itr FillSeq_List +1000 100 3 2.8344 ms + 9.30593 us 9.30037 us 9.33189 us + 52.9018 ns 3.95373 ns 125.894 ns + +COW_Vector_empty_itr FillSeq_List +50 100 4 2.3236 ms + 5.74342 us 5.69619 us 5.92492 us + 407.638 ns 103.644 ns 933.721 ns + +COW_Vector_empty_itr FillSeq_List +100 100 2 3.8364 ms + 19.5381 us 19.4755 us 19.6833 us + 470.471 ns 238.193 ns 793.648 ns + +COW_Vector_empty_itr FillSeq_List +1000 100 1 103.138 ms + 1.02219 ms 1.02134 ms 1.02303 ms + 4.30683 us 3.85196 us 4.88288 us + +COW_DArray_empty_itr FillSeq_List +50 100 12 2.1456 ms + 1.76765 us 1.76743 us 1.76851 us + 1.98944 ns 0.373864 ns 4.62752 ns + +COW_DArray_empty_itr FillSeq_List +100 100 7 2.2855 ms + 3.27837 us 3.26571 us 3.30378 us + 88.2901 ns 50.5299 ns 144.154 ns + +COW_DArray_empty_itr FillSeq_List +1000 100 1 2.8288 ms + 28.1568 us 28.1023 us 28.2788 us + 395.76 ns 197.003 ns 670.658 ns + +STD_Vector_rserv_itr FillSeq_List +50 100 41 2.1279 ms + 521.165 ns 519.728 ns 524.924 ns + 10.3168 ns 0.266432 ns 20.6426 ns + +STD_Vector_rserv_itr FillSeq_List +100 100 24 2.1096 ms + 880.622 ns 877.774 ns 886.438 ns + 19.8502 ns 10.6627 ns 31.7561 ns + +STD_Vector_rserv_itr FillSeq_List +1000 100 4 2.6292 ms + 6.58481 us 6.56973 us 6.63792 us + 124.657 ns 26.2394 ns 278.381 ns + +JAU_DArray_rserv_itr FillSeq_List +50 100 44 2.0944 ms + 504.908 ns 503.426 ns 508.953 ns + 10.9981 ns 0.347251 ns 23.449 ns + +JAU_DArray_rserv_itr FillSeq_List +100 100 26 2.1476 ms + 827.16 ns 825.085 ns 836.084 ns + 18.0184 ns 0.377244 ns 42.4347 ns + +JAU_DArray_rserv_itr FillSeq_List +1000 100 4 2.3976 ms + 6.00385 us 5.99214 us 6.06161 us + 115.24 ns 1.93334 ns 252.482 ns + +COW_Vector_rserv_itr FillSeq_List +50 100 4 2.476 ms + 6.12628 us 6.12033 us 6.15452 us + 57.0493 ns 3.45555 ns 135.858 ns + +COW_Vector_rserv_itr FillSeq_List +100 100 2 4.073 ms + 20.5219 us 20.4073 us 20.9229 us + 913.922 ns 52.6484 ns 2.0721 us + +COW_Vector_rserv_itr FillSeq_List +1000 100 1 108.419 ms + 1.08169 ms 1.08077 ms 1.08265 ms + 4.81349 us 4.35774 us 5.38341 us + +COW_Vector_rserv_itr FillSeq_List +50 100 4 2.4752 ms + 6.17815 us 6.1529 us 6.23063 us + 177.523 ns 102.004 ns 280.314 ns + +COW_Vector_rserv_itr FillSeq_List +100 100 2 4.0584 ms + 20.1429 us 20.0586 us 20.4957 us + 744.84 ns 137.805 ns 1.7365 us + +COW_Vector_rserv_itr FillSeq_List +1000 100 1 108.332 ms + 1.07729 ms 1.07656 ms 1.078 ms + 3.68093 us 3.21951 us 4.23509 us + + +------------------------------------------------------------------------------- +Perf Test 02 - Fill Unique and List, empty and reserve +------------------------------------------------------------------------------- +/test/test_cow_darray_perf01.cpp:530 +............................................................................... + +benchmark name samples iterations estimated + mean low mean high mean + std dev low std dev high std dev +------------------------------------------------------------------------------- +STD_Vector_empty_idx FillUni_List +50 100 11 2.0922 ms + 1.78899 us 1.78235 us 1.80339 us + 47.5893 ns 26.0812 ns 77.9321 ns + +STD_Vector_empty_idx FillUni_List +100 100 4 2.3412 ms + 6.24056 us 6.21462 us 6.30519 us + 196.305 ns 97.444 ns 407.914 ns + +STD_Vector_empty_idx FillUni_List +1000 100 1 39.3706 ms + 389.91 us 388.749 us 393.46 us + 9.43058 us 3.86633 us 20.7428 us + +STD_Vector_empty_itr FillUni_List +50 100 13 2.1619 ms + 1.62625 us 1.62237 us 1.636 us + 27.9497 ns 4.07125 ns 51.1131 ns + +STD_Vector_empty_itr FillUni_List +100 100 4 2.23 ms + 5.54929 us 5.54172 us 5.57753 us + 66.2521 ns 17.5609 ns 152.82 ns + +STD_Vector_empty_itr FillUni_List +1000 100 1 38.6387 ms + 387.279 us 386.262 us 391.178 us + 8.98648 us 2.04055 us 20.9355 us + +JAU_DArray_empty_idx FillUni_List +50 100 12 2.1828 ms + 1.88023 us 1.85714 us 1.90417 us + 119.67 ns 114.33 ns 135.271 ns + +JAU_DArray_empty_idx FillUni_List +100 100 4 2.7236 ms + 6.79534 us 6.77376 us 6.84645 us + 159.206 ns 78.086 ns 287.348 ns + +JAU_DArray_empty_idx FillUni_List +1000 100 1 38.8248 ms + 394.747 us 394.236 us 395.342 us + 2.81011 us 2.40999 us 3.27223 us + +JAU_DArray_empty_itr FillUni_List +50 100 13 2.1112 ms + 1.6465 us 1.64008 us 1.66125 us + 48.7547 ns 27.7939 ns 77.669 ns + +JAU_DArray_empty_itr FillUni_List +100 100 4 2.5492 ms + 6.36098 us 6.34687 us 6.37031 us + 57.031 ns 42.8585 ns 112.034 ns + +JAU_DArray_empty_itr FillUni_List +1000 100 1 39.8971 ms + 399.012 us 393.175 us 407.601 us + 35.6943 us 26.9714 us 44.1455 us + +COW_Vector_empty_itr FillUni_List +50 100 2 2.4302 ms + 12.219 us 12.1941 us 12.2724 us + 177.965 ns 73.8311 ns 305.141 ns + +COW_Vector_empty_itr FillUni_List +100 100 1 3.6369 ms + 36.292 us 36.2068 us 36.5079 us + 643.556 ns 285.442 ns 1.27906 us + +COW_Vector_empty_itr FillUni_List +1000 100 1 182.543 ms + 1.8947 ms 1.8934 ms 1.89613 ms + 6.92523 us 6.21527 us 7.78582 us + +COW_DArray_empty_itr FillUni_List +50 100 3 2.1018 ms + 6.99721 us 6.9725 us 7.04634 us + 169.177 ns 95.3738 ns 262.178 ns + +COW_DArray_empty_itr FillUni_List +100 100 2 3.3468 ms + 16.7829 us 16.714 us 16.9106 us + 464.357 ns 281.39 ns 699.268 ns + +COW_DArray_empty_itr FillUni_List +1000 100 1 60.1642 ms + 593.482 us 592.789 us 594.21 us + 3.64366 us 3.11135 us 4.36028 us + +STD_Vector_rserv_itr FillUni_List +50 100 14 2.1126 ms + 1.5431 us 1.53312 us 1.56815 us + 70.7362 ns 4.62231 ns 130.265 ns + +STD_Vector_rserv_itr FillUni_List +100 100 4 2.1356 ms + 5.42934 us 5.40332 us 5.48336 us + 182.126 ns 105.133 ns 322.296 ns + +STD_Vector_rserv_itr FillUni_List +1000 100 1 37.5587 ms + 371.987 us 371.528 us 372.643 us + 2.76657 us 2.13462 us 4.02853 us + +JAU_DArray_rserv_itr FillUni_List +50 100 13 2.0904 ms + 1.6157 us 1.61182 us 1.6312 us + 33.6739 ns 3.69632 ns 78.0574 ns + +JAU_DArray_rserv_itr FillUni_List +100 100 4 2.2192 ms + 5.33926 us 5.33073 us 5.3557 us + 58.2143 ns 30.7842 ns 104.499 ns + +JAU_DArray_rserv_itr FillUni_List +1000 100 1 37.1666 ms + 370.967 us 370.349 us 372.018 us + 4.03079 us 2.70746 us 6.23372 us + +COW_Vector_rserv_itr FillUni_List +50 100 2 2.4072 ms + 11.9813 us 11.89 us 12.2839 us + 708.205 ns 35.07 ns 1.58406 us + +COW_Vector_rserv_itr FillUni_List +100 100 1 3.5566 ms + 35.4723 us 35.3395 us 35.725 us + 905.511 ns 543.264 ns 1.4284 us + +COW_Vector_rserv_itr FillUni_List +1000 100 1 180.037 ms + 1.80119 ms 1.79948 ms 1.80266 ms + 8.06882 us 6.80229 us 9.89432 us + +COW_DArray_rserv_itr FillUni_List +50 100 4 2.5848 ms + 6.46866 us 6.467 us 6.47635 us + 15.577 ns 1.36692 ns 37.0103 ns + +COW_DArray_rserv_itr FillUni_List +100 100 2 3.1924 ms + 15.8892 us 15.8474 us 16.0002 us + 328.232 ns 139.156 ns 660.64 ns + +COW_DArray_rserv_itr FillUni_List +1000 100 1 57.9012 ms + 573.339 us 572.701 us 574.159 us + 3.65916 us 2.96615 us 4.6329 us + + +=============================================================================== +All tests passed (64672560 assertions in 3 test cases) + diff --git a/doc/test/test_cowvector_perf01.amd64.log b/doc/test/test_cowvector_perf01.amd64.log deleted file mode 100644 index 1c07f45..0000000 --- a/doc/test/test_cowvector_perf01.amd64.log +++ /dev/null @@ -1,153 +0,0 @@ -argc 3, auto-run 0 -Mem: stdvec_01 (full_): Elements 25 x 16 bytes; CAlloc[ 512 bytes, alloc[balance 1 = 6 - 5]], 1.280000 ratio -Mem: stdvec_01 (full_): Elements 50 x 16 bytes; CAlloc[ 1,024 bytes, alloc[balance 1 = 7 - 6]], 1.280000 ratio -Mem: stdvec_01 (full_): Elements 100 x 16 bytes; CAlloc[ 2,048 bytes, alloc[balance 1 = 8 - 7]], 1.280000 ratio -Mem: stdvec_01 (full_): Elements 200 x 16 bytes; CAlloc[ 4,096 bytes, alloc[balance 1 = 9 - 8]], 1.280000 ratio -Mem: stdvec_01 (full_): Elements 1,000 x 16 bytes; CAlloc[ 16,384 bytes, alloc[balance 1 = 11 - 10]], 1.024000 ratio - -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -test_cowvector_perf01 is a Catch v3.0.0-preview.3 host application. -Run with -? for options - -------------------------------------------------------------------------------- -STD Vector Perf Test 01 - Fill Sequential and List -------------------------------------------------------------------------------- -/test/test_cowvector_perf01.cpp:231 -............................................................................... - -benchmark name samples iterations estimated - mean low mean high mean - std dev low std dev high std dev -------------------------------------------------------------------------------- -Seq_List 25 100 60 2.082 ms - 350.144 ns 349.585 ns 351.737 ns - 4.42199 ns 2.00301 ns 9.59688 ns - -Seq_List 50 100 38 2.0672 ms - 541.848 ns 541.807 ns 541.982 ns - 0.345592 ns 0.122757 ns 0.771527 ns - -Seq_List 100 100 23 2.116 ms - 920.523 ns 916.727 ns 927.621 ns - 25.7041 ns 15.8618 ns 38.9443 ns - -Seq_List 200 100 13 2.1879 ms - 1.72219 us 1.71326 us 1.73803 us - 58.9475 ns 36.6068 ns 87.466 ns - -Seq_List 1000 100 3 2.1756 ms - 7.32046 us 7.28011 us 7.40319 us - 283.239 ns 160.691 ns 468.914 ns - - -Mem: cowvec_11 (full_): Elements 25 x 16 bytes; CAlloc[ 768 bytes, alloc[balance 1 = 2 - 1]], 1.920000 ratio -Mem: cowvec_11 (full_): Elements 50 x 16 bytes; CAlloc[ 1,568 bytes, alloc[balance 1 = 2 - 1]], 1.960000 ratio -Mem: cowvec_11 (full_): Elements 100 x 16 bytes; CAlloc[ 3,168 bytes, alloc[balance 1 = 2 - 1]], 1.980000 ratio -Mem: cowvec_11 (full_): Elements 200 x 16 bytes; CAlloc[ 6,368 bytes, alloc[balance 1 = 2 - 1]], 1.990000 ratio -Mem: cowvec_11 (full_): Elements 1,000 x 16 bytes; CAlloc[ 31,968 bytes, alloc[balance 1 = 2 - 1]], 1.998000 ratio -------------------------------------------------------------------------------- -COW Vector Perf Test 11 - Fill Sequential and List -------------------------------------------------------------------------------- -/test/test_cowvector_perf01.cpp:258 -............................................................................... - -benchmark name samples iterations estimated - mean low mean high mean - std dev low std dev high std dev -------------------------------------------------------------------------------- -Seq_List 25 100 10 2.284 ms - 2.27211 us 2.26364 us 2.28704 us - 55.6548 ns 36.1072 ns 83.1873 ns - -Seq_List 50 100 4 2.4708 ms - 6.14203 us 6.12294 us 6.19001 us - 138.624 ns 22.5121 ns 254.346 ns - -Seq_List 100 100 1 2.0615 ms - 20.2991 us 20.2313 us 20.4742 us - 502.929 ns 120.184 ns 907.942 ns - -Seq_List 200 100 1 6.3719 ms - 63.9441 us 63.7343 us 64.293 us - 1.34563 us 895.153 ns 2.00555 us - -Seq_List 1000 100 1 106.105 ms - 1.04617 ms 1.04518 ms 1.04712 ms - 4.92832 us 4.12439 us 6.22148 us - - -Mem: stdvec_02 (full_): Elements 25 x 16 bytes; CAlloc[ 512 bytes, alloc[balance 1 = 6 - 5]], 1.280000 ratio -Mem: stdvec_02 (full_): Elements 50 x 16 bytes; CAlloc[ 1,024 bytes, alloc[balance 1 = 7 - 6]], 1.280000 ratio -Mem: stdvec_02 (full_): Elements 100 x 16 bytes; CAlloc[ 2,048 bytes, alloc[balance 1 = 8 - 7]], 1.280000 ratio -Mem: stdvec_02 (full_): Elements 200 x 16 bytes; CAlloc[ 4,096 bytes, alloc[balance 1 = 9 - 8]], 1.280000 ratio -Mem: stdvec_02 (full_): Elements 1,000 x 16 bytes; CAlloc[ 16,384 bytes, alloc[balance 1 = 11 - 10]], 1.024000 ratio -------------------------------------------------------------------------------- -STD Vector Perf Test 02 - Fill Unique and Find-Each -------------------------------------------------------------------------------- -/test/test_cowvector_perf01.cpp:286 -............................................................................... - -benchmark name samples iterations estimated - mean low mean high mean - std dev low std dev high std dev -------------------------------------------------------------------------------- -Unique Find 25 100 24 2.0616 ms - 846.189 ns 843.472 ns 852.225 ns - 19.5557 ns 9.92097 ns 34.0883 ns - -Unique Find 50 100 9 2.0943 ms - 2.27419 us 2.27358 us 2.2756 us - 4.66728 ns 2.60139 ns 7.45502 ns - -Unique Find 100 100 3 2.2263 ms - 7.79227 us 7.75814 us 7.84904 us - 221.114 ns 150.556 ns 325.101 ns - -Unique Find 200 100 1 2.9961 ms - 29.4696 us 29.2017 us 29.7451 us - 1.3753 us 964.726 ns 2.04338 us - -Unique Find 1000 100 1 101.375 ms - 1.00886 ms 1.00591 ms 1.01206 ms - 15.7557 us 13.6415 us 20.1276 us - - -Mem: cowvec_12 (full_): Elements 25 x 16 bytes; CAlloc[ 768 bytes, alloc[balance 1 = 2 - 1]], 1.920000 ratio -Mem: cowvec_12 (full_): Elements 50 x 16 bytes; CAlloc[ 1,568 bytes, alloc[balance 1 = 2 - 1]], 1.960000 ratio -Mem: cowvec_12 (full_): Elements 100 x 16 bytes; CAlloc[ 3,168 bytes, alloc[balance 1 = 2 - 1]], 1.980000 ratio -Mem: cowvec_12 (full_): Elements 200 x 16 bytes; CAlloc[ 6,368 bytes, alloc[balance 1 = 2 - 1]], 1.990000 ratio -Mem: cowvec_12 (full_): Elements 1,000 x 16 bytes; CAlloc[ 31,968 bytes, alloc[balance 1 = 2 - 1]], 1.998000 ratio -------------------------------------------------------------------------------- -COW Vector Perf Test 12 - Fill Unique and Find-Each -------------------------------------------------------------------------------- -/test/test_cowvector_perf01.cpp:313 -............................................................................... - -benchmark name samples iterations estimated - mean low mean high mean - std dev low std dev high std dev -------------------------------------------------------------------------------- -Unique Find 25 100 5 2.2945 ms - 4.6223 us 4.61348 us 4.63931 us - 60.3974 ns 38.3079 ns 116.061 ns - -Unique Find 50 100 2 3.169 ms - 15.8017 us 15.7506 us 15.9111 us - 365.232 ns 205.942 ns 667.899 ns - -Unique Find 100 100 1 5.8658 ms - 57.5863 us 57.486 us 57.9267 us - 839.216 ns 279.156 ns 1.87942 us - -Unique Find 200 100 1 21.1047 ms - 210.697 us 210.437 us 211.044 us - 1.52385 us 1.22872 us 2.03313 us - -Unique Find 1000 100 1 467.482 ms - 4.69308 ms 4.6879 ms 4.69895 ms - 28.3154 us 25.1022 us 32.3612 us - - -=============================================================================== -All tests passed (17403632 assertions in 4 test cases) - diff --git a/doc/test/test_cowvector_perf01.arm64-raspi4.log b/doc/test/test_cowvector_perf01.arm64-raspi4.log deleted file mode 100644 index 7497ffe..0000000 --- a/doc/test/test_cowvector_perf01.arm64-raspi4.log +++ /dev/null @@ -1,153 +0,0 @@ -argc 3, auto-run 0 -Mem: stdvec_01 (full_): Elements 25 x 16 bytes; CAlloc[ 512 bytes, alloc[balance 1 = 6 - 5]], 1.280000 ratio -Mem: stdvec_01 (full_): Elements 50 x 16 bytes; CAlloc[ 1,024 bytes, alloc[balance 1 = 7 - 6]], 1.280000 ratio -Mem: stdvec_01 (full_): Elements 100 x 16 bytes; CAlloc[ 2,048 bytes, alloc[balance 1 = 8 - 7]], 1.280000 ratio -Mem: stdvec_01 (full_): Elements 200 x 16 bytes; CAlloc[ 4,096 bytes, alloc[balance 1 = 9 - 8]], 1.280000 ratio -Mem: stdvec_01 (full_): Elements 1,000 x 16 bytes; CAlloc[ 16,384 bytes, alloc[balance 1 = 11 - 10]], 1.024000 ratio - -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -test_cowvector_perf01 is a Catch v3.0.0-preview.3 host application. -Run with -? for options - -------------------------------------------------------------------------------- -STD Vector Perf Test 01 - Fill Sequential and List -------------------------------------------------------------------------------- -/test/test_cowvector_perf01.cpp:231 -............................................................................... - -benchmark name samples iterations estimated - mean low mean high mean - std dev low std dev high std dev -------------------------------------------------------------------------------- -Seq_List 25 100 77 9.9099 ms - 1.27432 us 1.27211 us 1.27914 us - 15.8552 ns 6.72908 ns 27.0865 ns - -Seq_List 50 100 55 9.9 ms - 1.79602 us 1.78413 us 1.84783 us - 107.523 ns 14.5073 ns 253.156 ns - -Seq_List 100 100 34 9.9518 ms - 2.9136 us 2.90828 us 2.92575 us - 39.7364 ns 22.7895 ns 64.0512 ns - -Seq_List 200 100 21 10.0926 ms - 4.77759 us 4.77012 us 4.79622 us - 54.9702 ns 16.1965 ns 97.5445 ns - -Seq_List 1000 100 6 11.5296 ms - 19.1583 us 19.1215 us 19.2311 us - 254.646 ns 157.209 ns 395.481 ns - - -Mem: cowvec_11 (full_): Elements 25 x 16 bytes; CAlloc[ 768 bytes, alloc[balance 1 = 2 - 1]], 1.920000 ratio -Mem: cowvec_11 (full_): Elements 50 x 16 bytes; CAlloc[ 1,568 bytes, alloc[balance 1 = 2 - 1]], 1.960000 ratio -Mem: cowvec_11 (full_): Elements 100 x 16 bytes; CAlloc[ 3,168 bytes, alloc[balance 1 = 2 - 1]], 1.980000 ratio -Mem: cowvec_11 (full_): Elements 200 x 16 bytes; CAlloc[ 6,368 bytes, alloc[balance 1 = 2 - 1]], 1.990000 ratio -Mem: cowvec_11 (full_): Elements 1,000 x 16 bytes; CAlloc[ 31,968 bytes, alloc[balance 1 = 2 - 1]], 1.998000 ratio -------------------------------------------------------------------------------- -COW Vector Perf Test 11 - Fill Sequential and List -------------------------------------------------------------------------------- -/test/test_cowvector_perf01.cpp:258 -............................................................................... - -benchmark name samples iterations estimated - mean low mean high mean - std dev low std dev high std dev -------------------------------------------------------------------------------- -Seq_List 25 100 8 10.5888 ms - 13.4481 us 13.4223 us 13.4991 us - 178.586 ns 109.07 ns 277.353 ns - -Seq_List 50 100 3 10.1469 ms - 34.5996 us 34.5337 us 34.748 us - 482.345 ns 282.181 ns 759.841 ns - -Seq_List 100 100 2 18.8188 ms - 94.4849 us 94.3041 us 94.8347 us - 1.23247 us 752.838 ns 1.9215 us - -Seq_List 200 100 1 26.7126 ms - 266.465 us 266.108 us 267.02 us - 2.23473 us 1.57151 us 2.96187 us - -Seq_List 1000 100 1 445.089 ms - 4.43661 ms 4.43537 ms 4.43874 ms - 8.07672 us 5.41298 us 14.4825 us - - -Mem: stdvec_02 (full_): Elements 25 x 16 bytes; CAlloc[ 512 bytes, alloc[balance 1 = 6 - 5]], 1.280000 ratio -Mem: stdvec_02 (full_): Elements 50 x 16 bytes; CAlloc[ 1,024 bytes, alloc[balance 1 = 7 - 6]], 1.280000 ratio -Mem: stdvec_02 (full_): Elements 100 x 16 bytes; CAlloc[ 2,048 bytes, alloc[balance 1 = 8 - 7]], 1.280000 ratio -Mem: stdvec_02 (full_): Elements 200 x 16 bytes; CAlloc[ 4,096 bytes, alloc[balance 1 = 9 - 8]], 1.280000 ratio -Mem: stdvec_02 (full_): Elements 1,000 x 16 bytes; CAlloc[ 16,384 bytes, alloc[balance 1 = 11 - 10]], 1.024000 ratio -------------------------------------------------------------------------------- -STD Vector Perf Test 02 - Fill Unique and Find-Each -------------------------------------------------------------------------------- -/test/test_cowvector_perf01.cpp:286 -............................................................................... - -benchmark name samples iterations estimated - mean low mean high mean - std dev low std dev high std dev -------------------------------------------------------------------------------- -Unique Find 25 100 26 9.9866 ms - 3.83536 us 3.82892 us 3.85186 us - 47.3465 ns 10.36 ns 85.6373 ns - -Unique Find 50 100 11 10.219 ms - 9.31415 us 9.294 us 9.35288 us - 136.606 ns 76.0691 ns 204.992 ns - -Unique Find 100 100 4 11.1196 ms - 27.9158 us 27.8657 us 28.0241 us - 361.204 ns 203.807 ns 581.343 ns - -Unique Find 200 100 2 18.9416 ms - 94.8942 us 94.7546 us 95.1397 us - 923.567 ns 584.085 ns 1.32101 us - -Unique Find 1000 100 1 364.572 ms - 3.64712 ms 3.64621 ms 3.64952 ms - 7.03117 us 3.22424 us 14.8312 us - - -Mem: cowvec_12 (full_): Elements 25 x 16 bytes; CAlloc[ 768 bytes, alloc[balance 1 = 2 - 1]], 1.920000 ratio -Mem: cowvec_12 (full_): Elements 50 x 16 bytes; CAlloc[ 1,568 bytes, alloc[balance 1 = 2 - 1]], 1.960000 ratio -Mem: cowvec_12 (full_): Elements 100 x 16 bytes; CAlloc[ 3,168 bytes, alloc[balance 1 = 2 - 1]], 1.980000 ratio -Mem: cowvec_12 (full_): Elements 200 x 16 bytes; CAlloc[ 6,368 bytes, alloc[balance 1 = 2 - 1]], 1.990000 ratio -Mem: cowvec_12 (full_): Elements 1,000 x 16 bytes; CAlloc[ 31,968 bytes, alloc[balance 1 = 2 - 1]], 1.998000 ratio -------------------------------------------------------------------------------- -COW Vector Perf Test 12 - Fill Unique and Find-Each -------------------------------------------------------------------------------- -/test/test_cowvector_perf01.cpp:313 -............................................................................... - -benchmark name samples iterations estimated - mean low mean high mean - std dev low std dev high std dev -------------------------------------------------------------------------------- -Unique Find 25 100 3 10.5069 ms - 34.8512 us 34.7742 us 35.0189 us - 551.761 ns 294.3 ns 931.225 ns - -Unique Find 50 100 1 11.7274 ms - 116.652 us 116.491 us 117.052 us - 1.1968 us 348.796 ns 2.12363 us - -Unique Find 100 100 1 42.362 ms - 420.924 us 420.491 us 421.544 us - 2.60965 us 1.95353 us 3.25359 us - -Unique Find 200 100 1 156.78 ms - 1.5621 ms 1.56129 ms 1.56296 ms - 4.24603 us 3.94813 us 4.6176 us - -Unique Find 1000 100 1 3.48784 s - 34.8407 ms 34.837 ms 34.8487 ms - 26.8157 us 15.8642 us 52.1366 us - - -=============================================================================== -All tests passed (4953760 assertions in 4 test cases) - diff --git a/doc/test/test_hashset_perf01.amd64.log b/doc/test/test_hashset_perf01.amd64.log deleted file mode 100644 index ac70875..0000000 --- a/doc/test/test_hashset_perf01.amd64.log +++ /dev/null @@ -1,117 +0,0 @@ -argc 3, auto-run 0 -Mem: stdvec_01 (full_): Elements 25 x 16 bytes; CAlloc[ 512 bytes, alloc[balance 1 = 6 - 5]], 1.280000 ratio -Mem: stdvec_01 (full_): Elements 50 x 16 bytes; CAlloc[ 1,024 bytes, alloc[balance 1 = 7 - 6]], 1.280000 ratio -Mem: stdvec_01 (full_): Elements 100 x 16 bytes; CAlloc[ 2,048 bytes, alloc[balance 1 = 8 - 7]], 1.280000 ratio -Mem: stdvec_01 (full_): Elements 200 x 16 bytes; CAlloc[ 4,096 bytes, alloc[balance 1 = 9 - 8]], 1.280000 ratio -Mem: stdvec_01 (full_): Elements 1,000 x 16 bytes; CAlloc[ 16,384 bytes, alloc[balance 1 = 11 - 10]], 1.024000 ratio - -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -test_hashset_perf01 is a Catch v3.0.0-preview.3 host application. -Run with -? for options - -------------------------------------------------------------------------------- -STD Vector Perf Test 01 - Fill Sequential and List -------------------------------------------------------------------------------- -/test/test_hashset_perf01.cpp:269 -............................................................................... - -benchmark name samples iterations estimated - mean low mean high mean - std dev low std dev high std dev -------------------------------------------------------------------------------- -Seq_List 25 100 60 2.064 ms - 343.05 ns 342.936 ns 343.582 ns - 1.07506 ns 0.0932254 ns 2.55378 ns - -Seq_List 50 100 39 2.067 ms - 550.599 ns 546.832 ns 556.485 ns - 23.629 ns 16.807 ns 38.1638 ns - -Seq_List 100 100 23 2.1344 ms - 908.328 ns 905.844 ns 915.301 ns - 18.916 ns 2.60158 ns 39.6416 ns - -Seq_List 200 100 13 2.1619 ms - 1.6673 us 1.66284 us 1.67519 us - 29.6194 ns 19.2921 ns 47.6946 ns - -Seq_List 1000 100 3 2.1549 ms - 7.34832 us 7.30432 us 7.43755 us - 306.073 ns 179.633 ns 483.433 ns - - -Mem: stdvec_02 (full_): Elements 25 x 16 bytes; CAlloc[ 512 bytes, alloc[balance 1 = 6 - 5]], 1.280000 ratio -Mem: stdvec_02 (full_): Elements 50 x 16 bytes; CAlloc[ 1,024 bytes, alloc[balance 1 = 7 - 6]], 1.280000 ratio -Mem: stdvec_02 (full_): Elements 100 x 16 bytes; CAlloc[ 2,048 bytes, alloc[balance 1 = 8 - 7]], 1.280000 ratio -Mem: stdvec_02 (full_): Elements 200 x 16 bytes; CAlloc[ 4,096 bytes, alloc[balance 1 = 9 - 8]], 1.280000 ratio -Mem: stdvec_02 (full_): Elements 1,000 x 16 bytes; CAlloc[ 16,384 bytes, alloc[balance 1 = 11 - 10]], 1.024000 ratio -------------------------------------------------------------------------------- -STD Vector Perf Test 02 - Fill Unique and Find-Each -------------------------------------------------------------------------------- -/test/test_hashset_perf01.cpp:297 -............................................................................... - -benchmark name samples iterations estimated - mean low mean high mean - std dev low std dev high std dev -------------------------------------------------------------------------------- -Unique Find 25 100 24 2.0472 ms - 852.497 ns 849.73 ns 858.158 ns - 19.3529 ns 10.6049 ns 30.5871 ns - -Unique Find 50 100 9 2.0709 ms - 2.24281 us 2.22486 us 2.25011 us - 53.3331 ns 15.7256 ns 94.6539 ns - -Unique Find 100 100 3 2.2842 ms - 6.75987 us 6.7288 us 6.81588 us - 206.88 ns 129.222 ns 302.069 ns - -Unique Find 200 100 1 2.7023 ms - 26.4917 us 26.4056 us 26.6488 us - 572.088 ns 274.826 ns 957.771 ns - -Unique Find 1000 100 1 84.9358 ms - 970.189 us 968.48 us 972.371 us - 9.84229 us 7.6143 us 14.9796 us - - -Mem: stdset_12 (full_): Elements 25 x 16 bytes; CAlloc[ 600 bytes, alloc[balance 25 = 25 - 0]], 1.500000 ratio -Mem: stdset_12 (full_): Elements 50 x 16 bytes; CAlloc[ 1,200 bytes, alloc[balance 50 = 50 - 0]], 1.500000 ratio -Mem: stdset_12 (full_): Elements 100 x 16 bytes; CAlloc[ 2,400 bytes, alloc[balance 100 = 100 - 0]], 1.500000 ratio -Mem: stdset_12 (full_): Elements 200 x 16 bytes; CAlloc[ 4,800 bytes, alloc[balance 200 = 200 - 0]], 1.500000 ratio -Mem: stdset_12 (full_): Elements 1,000 x 16 bytes; CAlloc[ 24,000 bytes, alloc[balance 1,000 = 1,000 - 0]], 1.500000 ratio -------------------------------------------------------------------------------- -STD Unordered-Set Perf Test 12 - Fill Unique and Find-Each -------------------------------------------------------------------------------- -/test/test_hashset_perf01.cpp:324 -............................................................................... - -benchmark name samples iterations estimated - mean low mean high mean - std dev low std dev high std dev -------------------------------------------------------------------------------- -Unique Find 25 100 12 2.1552 ms - 1.81641 us 1.8122 us 1.83224 us - 36.556 ns 7.89957 ns 84.0457 ns - -Unique Find 50 100 7 2.359 ms - 3.3691 us 3.36238 us 3.39531 us - 57.3478 ns 6.25338 ns 131.391 ns - -Unique Find 100 100 4 2.6164 ms - 6.49391 us 6.48824 us 6.51029 us - 45.1634 ns 19.76 ns 97.6575 ns - -Unique Find 200 100 2 2.764 ms - 13.3148 us 13.2758 us 13.4136 us - 294.994 ns 142.841 ns 589.103 ns - -Unique Find 1000 100 1 8.7068 ms - 86.4785 us 86.267 us 86.9334 us - 1.50441 us 802.647 ns 2.52316 us - - -=============================================================================== -All tests passed (17601392 assertions in 3 test cases) - diff --git a/doc/test/test_hashset_perf01.arm64-raspi4.log b/doc/test/test_hashset_perf01.arm64-raspi4.log deleted file mode 100644 index a362fa1..0000000 --- a/doc/test/test_hashset_perf01.arm64-raspi4.log +++ /dev/null @@ -1,117 +0,0 @@ -argc 3, auto-run 0 -Mem: stdvec_01 (full_): Elements 25 x 16 bytes; CAlloc[ 512 bytes, alloc[balance 1 = 6 - 5]], 1.280000 ratio -Mem: stdvec_01 (full_): Elements 50 x 16 bytes; CAlloc[ 1,024 bytes, alloc[balance 1 = 7 - 6]], 1.280000 ratio -Mem: stdvec_01 (full_): Elements 100 x 16 bytes; CAlloc[ 2,048 bytes, alloc[balance 1 = 8 - 7]], 1.280000 ratio -Mem: stdvec_01 (full_): Elements 200 x 16 bytes; CAlloc[ 4,096 bytes, alloc[balance 1 = 9 - 8]], 1.280000 ratio -Mem: stdvec_01 (full_): Elements 1,000 x 16 bytes; CAlloc[ 16,384 bytes, alloc[balance 1 = 11 - 10]], 1.024000 ratio - -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -test_hashset_perf01 is a Catch v3.0.0-preview.3 host application. -Run with -? for options - -------------------------------------------------------------------------------- -STD Vector Perf Test 01 - Fill Sequential and List -------------------------------------------------------------------------------- -/test/test_hashset_perf01.cpp:269 -............................................................................... - -benchmark name samples iterations estimated - mean low mean high mean - std dev low std dev high std dev -------------------------------------------------------------------------------- -Seq_List 25 100 78 10.101 ms - 1.29545 us 1.2927 us 1.3001 us - 17.8456 ns 12.1376 ns 26.3005 ns - -Seq_List 50 100 55 10.197 ms - 1.84654 us 1.84393 us 1.85299 us - 19.4339 ns 6.01208 ns 34.476 ns - -Seq_List 100 100 35 10.1465 ms - 2.90007 us 2.89447 us 2.9121 us - 40.0101 ns 23.2939 ns 62.6749 ns - -Seq_List 200 100 21 10.0674 ms - 4.79983 us 4.78373 us 4.8477 us - 129.534 ns 47.2952 ns 274.068 ns - -Seq_List 1000 100 6 11.4552 ms - 19.1848 us 19.1531 us 19.261 us - 246.522 ns 143.048 ns 391.5 ns - - -Mem: stdvec_02 (full_): Elements 25 x 16 bytes; CAlloc[ 512 bytes, alloc[balance 1 = 6 - 5]], 1.280000 ratio -Mem: stdvec_02 (full_): Elements 50 x 16 bytes; CAlloc[ 1,024 bytes, alloc[balance 1 = 7 - 6]], 1.280000 ratio -Mem: stdvec_02 (full_): Elements 100 x 16 bytes; CAlloc[ 2,048 bytes, alloc[balance 1 = 8 - 7]], 1.280000 ratio -Mem: stdvec_02 (full_): Elements 200 x 16 bytes; CAlloc[ 4,096 bytes, alloc[balance 1 = 9 - 8]], 1.280000 ratio -Mem: stdvec_02 (full_): Elements 1,000 x 16 bytes; CAlloc[ 16,384 bytes, alloc[balance 1 = 11 - 10]], 1.024000 ratio -------------------------------------------------------------------------------- -STD Vector Perf Test 02 - Fill Unique and Find-Each -------------------------------------------------------------------------------- -/test/test_hashset_perf01.cpp:297 -............................................................................... - -benchmark name samples iterations estimated - mean low mean high mean - std dev low std dev high std dev -------------------------------------------------------------------------------- -Unique Find 25 100 27 10.1493 ms - 3.79413 us 3.78826 us 3.8091 us - 43.2259 ns 11.7687 ns 77.1456 ns - -Unique Find 50 100 11 10.0749 ms - 9.21581 us 9.19898 us 9.25444 us - 125.095 ns 72.4751 ns 198.256 ns - -Unique Find 100 100 4 10.9788 ms - 27.6046 us 27.5425 us 27.7244 us - 412.409 ns 217.397 ns 623.793 ns - -Unique Find 200 100 2 18.8014 ms - 94.2517 us 94.1176 us 94.4959 us - 894.732 ns 565.305 ns 1.28047 us - -Unique Find 1000 100 1 343.853 ms - 3.43966 ms 3.43877 ms 3.44153 ms - 6.31207 us 3.50588 us 12.5288 us - - -Mem: stdset_12 (full_): Elements 25 x 16 bytes; CAlloc[ 600 bytes, alloc[balance 25 = 25 - 0]], 1.500000 ratio -Mem: stdset_12 (full_): Elements 50 x 16 bytes; CAlloc[ 1,200 bytes, alloc[balance 50 = 50 - 0]], 1.500000 ratio -Mem: stdset_12 (full_): Elements 100 x 16 bytes; CAlloc[ 2,400 bytes, alloc[balance 100 = 100 - 0]], 1.500000 ratio -Mem: stdset_12 (full_): Elements 200 x 16 bytes; CAlloc[ 4,800 bytes, alloc[balance 200 = 200 - 0]], 1.500000 ratio -Mem: stdset_12 (full_): Elements 1,000 x 16 bytes; CAlloc[ 24,000 bytes, alloc[balance 1,000 = 1,000 - 0]], 1.500000 ratio -------------------------------------------------------------------------------- -STD Unordered-Set Perf Test 12 - Fill Unique and Find-Each -------------------------------------------------------------------------------- -/test/test_hashset_perf01.cpp:324 -............................................................................... - -benchmark name samples iterations estimated - mean low mean high mean - std dev low std dev high std dev -------------------------------------------------------------------------------- -Unique Find 25 100 14 10.4202 ms - 7.47964 us 7.46322 us 7.51494 us - 118.007 ns 69.3892 ns 186.392 ns - -Unique Find 50 100 8 10.6464 ms - 13.284 us 13.248 us 13.3487 us - 239.185 ns 152.993 ns 359.936 ns - -Unique Find 100 100 4 10.7904 ms - 27.1248 us 27.0621 us 27.2544 us - 441.752 ns 252.981 ns 695.429 ns - -Unique Find 200 100 2 11.4072 ms - 57.1536 us 56.7599 us 58.7903 us - 3.51188 us 669.03 ns 8.19054 us - -Unique Find 1000 100 1 33.7565 ms - 338.059 us 337.468 us 338.85 us - 3.47204 us 2.71059 us 4.28299 us - - -=============================================================================== -All tests passed (5198408 assertions in 3 test cases) - -- cgit v1.2.3