
Windows, Master, Hash createTriHash

------------------------------------------------------------------------------------- benchmark: 20 tests --------------------------------------------------------------------------------------
Name (time in ms)                Min                 Max                Mean            StdDev              Median               IQR            Outliers       OPS            Rounds  Iterations
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
test_clusters[2-1000]         1.2837 (1.0)        1.6081 (1.0)        1.3141 (1.0)      0.0346 (1.37)       1.3041 (1.0)      0.0183 (1.0)         55;59  760.9905 (1.0)         685           1
test_clusters[3-1000]         1.9443 (1.51)       2.2483 (1.40)       1.9847 (1.51)     0.0253 (1.0)        1.9773 (1.52)     0.0293 (1.60)         97;7  503.8500 (0.66)        459           1
test_clusters[4-1000]         2.4939 (1.94)       3.5401 (2.20)       2.5712 (1.96)     0.1065 (4.22)       2.5349 (1.94)     0.0639 (3.49)        20;17  388.9291 (0.51)        352           1
test_building1                2.7139 (2.11)       2.8880 (1.80)       2.7617 (2.10)     0.0279 (1.11)       2.7542 (2.11)     0.0270 (1.48)        79;22  362.1010 (0.48)        322           1
test_building2                3.1119 (2.42)       3.3295 (2.07)       3.1545 (2.40)     0.0307 (1.21)       3.1462 (2.41)     0.0335 (1.83)         85;7  317.0106 (0.42)        290           1
test_clusters[5-1000]         3.3401 (2.60)       3.6653 (2.28)       3.4154 (2.60)     0.0652 (2.58)       3.3909 (2.60)     0.0596 (3.26)        37;21  292.7933 (0.38)        273           1
test_clusters[6-1000]         4.1033 (3.20)       4.5086 (2.80)       4.1788 (3.18)     0.0705 (2.79)       4.1518 (3.18)     0.0719 (3.93)        32;14  239.3006 (0.31)        226           1
test_clusters[7-1000]         4.8095 (3.75)       5.2699 (3.28)       4.8994 (3.73)     0.0636 (2.52)       4.8770 (3.74)     0.0834 (4.56)         45;3  204.1071 (0.27)        195           1
test_clusters[8-1000]         6.1615 (4.80)       9.3344 (5.80)       6.3007 (4.79)     0.2599 (10.29)      6.2520 (4.79)     0.1036 (5.66)          3;5  158.7123 (0.21)        157           1
test_clusters[9-1000]         6.4179 (5.00)      11.1408 (6.93)       7.0414 (5.36)     0.4405 (17.45)      7.0094 (5.37)     0.1213 (6.63)        24;41  142.0182 (0.19)        135           1
test_clusters[2-10000]       16.9933 (13.24)     18.3131 (11.39)     17.3279 (13.19)    0.3718 (14.72)     17.1821 (13.18)    0.2818 (15.40)       10;10   57.7102 (0.08)         56           1
test_clusters[3-10000]       27.5764 (21.48)     35.9936 (22.38)     28.6317 (21.79)    1.5429 (61.10)     27.9466 (21.43)    1.3312 (72.74)         2;1   34.9263 (0.05)         34           1
test_clusters[4-10000]       37.5608 (29.26)     40.0043 (24.88)     38.1017 (28.99)    0.6485 (25.68)     37.8331 (29.01)    0.3780 (20.66)         4;4   26.2456 (0.03)         26           1
test_clusters[5-10000]       47.7531 (37.20)     50.6082 (31.47)     48.5088 (36.91)    0.9305 (36.85)     48.1808 (36.95)    0.6453 (35.27)         3;3   20.6148 (0.03)         20           1
test_clusters[6-10000]       67.5819 (52.65)     70.0135 (43.54)     68.4427 (52.08)    0.6838 (27.08)     68.2022 (52.30)    0.6007 (32.83)         4;2   14.6108 (0.02)         15           1
test_clusters[7-10000]       79.8432 (62.20)     83.5042 (51.93)     80.7906 (61.48)    1.0585 (41.92)     80.4419 (61.68)    1.2462 (68.10)         2;1   12.3777 (0.02)         13           1
test_100k_array_lmax         90.1142 (70.20)     91.8465 (57.11)     91.0622 (69.30)    0.5813 (23.02)     90.8887 (69.69)    0.8486 (46.37)         5;0   10.9815 (0.01)         11           1
test_clusters[8-10000]       91.8573 (71.56)     96.8426 (60.22)     93.1960 (70.92)    1.4413 (57.08)     92.7647 (71.13)    0.9819 (53.65)         2;2   10.7301 (0.01)         11           1
test_clusters[9-10000]      105.5066 (82.19)    109.3144 (67.98)    106.3718 (80.95)    1.1094 (43.93)    106.0690 (81.33)    0.4677 (25.56)         1;1    9.4010 (0.01)         10           1
test_100k_array_3d_lmax     106.9579 (83.32)    109.9301 (68.36)    107.9319 (82.14)    0.8122 (32.16)    107.7447 (82.62)    0.7577 (41.40)         2;1    9.2651 (0.01)         10           1
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------



------------------------------------------------------------------------------------------------


Linux, Master, Hash createTriHash

------------------------------------------------------------------------------------------------ benchmark: 20 tests -------------------------------------------------------------------------------------------------
Name (time in us)                   Min                    Max                   Mean                StdDev                 Median                   IQR            Outliers         OPS            Rounds  Iterations
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
test_clusters[2-1000]          882.8000 (1.0)         962.6000 (1.0)         899.5179 (1.0)         11.4906 (1.0)         895.2000 (1.0)         16.4250 (1.0)         225;7  1,111.7067 (1.0)         829           1
test_clusters[3-1000]        1,352.1000 (1.53)      1,458.3000 (1.51)      1,377.5791 (1.53)        16.2037 (1.41)      1,371.5000 (1.53)        22.7750 (1.39)        208;1    725.9111 (0.65)        699           1
test_building1               1,678.6000 (1.90)      1,766.5000 (1.84)      1,705.2131 (1.90)        18.7479 (1.63)      1,699.5500 (1.90)        22.7000 (1.38)         96;8    586.4370 (0.53)        352           1
test_clusters[4-1000]        1,831.1000 (2.07)      1,931.4000 (2.01)      1,864.7517 (2.07)        21.3730 (1.86)      1,857.1500 (2.07)        31.7000 (1.93)        154;2    536.2644 (0.48)        518           1
test_building2               1,954.0000 (2.21)      2,061.5000 (2.14)      1,986.5066 (2.21)        20.6022 (1.79)      1,979.6000 (2.21)        31.9000 (1.94)        134;2    503.3963 (0.45)        483           1
test_clusters[5-1000]        2,342.7000 (2.65)      2,501.3000 (2.60)      2,381.5431 (2.65)        26.1578 (2.28)      2,373.9500 (2.65)        39.5000 (2.40)        127;1    419.8958 (0.38)        408           1
test_clusters[6-1000]        2,857.0000 (3.24)      2,976.1000 (3.09)      2,904.7411 (3.23)        26.9463 (2.35)      2,897.2000 (3.24)        44.5500 (2.71)        115;0    344.2648 (0.31)        321           1
test_clusters[7-1000]        3,355.0000 (3.80)      4,251.3000 (4.42)      3,424.5415 (3.81)        76.3941 (6.65)      3,412.8500 (3.81)        61.5000 (3.74)          8;5    292.0099 (0.26)        282           1
test_clusters[8-1000]        3,953.8000 (4.48)      4,128.4000 (4.29)      4,014.3079 (4.46)        37.5188 (3.27)      4,006.0000 (4.47)        59.1500 (3.60)         80;0    249.1089 (0.22)        239           1
test_clusters[9-1000]        4,434.4000 (5.02)      4,684.4000 (4.87)      4,507.4950 (5.01)        35.5161 (3.09)      4,504.8000 (5.03)        53.6750 (3.27)         74;2    221.8527 (0.20)        219           1
test_clusters[2-10000]      11,419.3000 (12.94)    11,859.9000 (12.32)    11,537.5069 (12.83)       71.3592 (6.21)     11,530.0000 (12.88)       65.7500 (4.00)         17;4     86.6738 (0.08)         72           1
test_clusters[3-10000]      20,024.3000 (22.68)    20,722.8000 (21.53)    20,232.6826 (22.49)      138.0951 (12.02)    20,192.7500 (22.56)      106.2000 (6.47)          8;5     49.4250 (0.04)         46           1
test_clusters[4-10000]      26,710.9000 (30.26)    27,923.9000 (29.01)    26,959.6389 (29.97)      253.6775 (22.08)    26,868.4000 (30.01)      155.7500 (9.48)          6;6     37.0925 (0.03)         36           1
test_clusters[5-10000]      34,028.9000 (38.55)    35,782.4000 (37.17)    34,254.0310 (38.08)      350.1907 (30.48)    34,167.7000 (38.17)      231.8500 (14.12)         3;3     29.1936 (0.03)         29           1
test_clusters[6-10000]      57,002.6000 (64.57)    60,892.1000 (63.26)    57,862.2944 (64.33)    1,103.9255 (96.07)    57,340.4500 (64.05)    1,030.6000 (62.75)         3;1     17.2824 (0.02)         18           1
test_clusters[7-10000]      66,303.4000 (75.11)    68,512.1000 (71.17)    66,962.4600 (74.44)      526.6050 (45.83)    66,892.9000 (74.72)      454.2250 (27.65)         3;1     14.9337 (0.01)         15           1
test_100k_array_lmax        68,489.8000 (77.58)    71,330.9000 (74.10)    69,230.2462 (76.96)      743.6412 (64.72)    69,023.0000 (77.10)      630.8250 (38.41)         1;1     14.4446 (0.01)         13           1
test_100k_array_3d_lmax     73,919.8000 (83.73)    76,398.5000 (79.37)    74,595.7000 (82.93)      620.0242 (53.96)    74,454.5000 (83.17)      600.0000 (36.53)         2;1     13.4056 (0.01)         14           1
test_clusters[8-10000]      77,198.2000 (87.45)    79,576.4000 (82.67)    78,200.2615 (86.94)      807.6011 (70.28)    78,094.0000 (87.24)    1,153.4750 (70.23)         5;0     12.7877 (0.01)         13           1
test_clusters[9-10000]      86,645.7000 (98.15)    89,417.7000 (92.89)    87,599.5333 (97.38)      785.6292 (68.37)    87,446.3000 (97.68)      740.4000 (45.08)         3;1     11.4156 (0.01)         12           1
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------



+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


Windows x64, Optimize, BitSet TriHashSet
------------------------------------------------------------------------------------ benchmark: 22 tests ------------------------------------------------------------------------------------
Name (time in ms)               Min                 Max               Mean            StdDev             Median               IQR            Outliers       OPS            Rounds  Iterations
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
test_clusters[2-1000]        1.1601 (1.0)        1.3730 (1.0)       1.1945 (1.0)      0.0320 (1.0)       1.1843 (1.0)      0.0188 (1.0)         79;78  837.1370 (1.0)         784           1
test_clusters[3-1000]        1.6635 (1.43)       2.1004 (1.53)      1.7209 (1.44)     0.0451 (1.41)      1.7041 (1.44)     0.0454 (2.41)       108;20  581.0863 (0.69)        499           1
test_clusters[4-1000]        2.3788 (2.05)       3.0054 (2.19)      2.4613 (2.06)     0.1237 (3.87)      2.4219 (2.04)     0.0444 (2.36)        26;38  406.2841 (0.49)        391           1
test_building1               2.6114 (2.25)       4.6939 (3.42)      2.6698 (2.23)     0.1372 (4.29)      2.6397 (2.23)     0.0247 (1.31)        24;51  374.5587 (0.45)        340           1
test_building2               2.9890 (2.58)       3.3798 (2.46)      3.0457 (2.55)     0.0688 (2.15)      3.0195 (2.55)     0.0276 (1.47)        46;50  328.3271 (0.39)        311           1
test_clusters[5-1000]        3.0553 (2.63)       3.4709 (2.53)      3.1192 (2.61)     0.0618 (1.93)      3.0971 (2.61)     0.0586 (3.12)        34;24  320.5902 (0.38)        292           1
test_clusters[6-1000]        3.6807 (3.17)       3.8772 (2.82)      3.7410 (3.13)     0.0354 (1.11)      3.7341 (3.15)     0.0489 (2.60)         73;3  267.3058 (0.32)        255           1
test_clusters[7-1000]        4.3855 (3.78)       4.7631 (3.47)      4.4603 (3.73)     0.0559 (1.75)      4.4468 (3.75)     0.0746 (3.97)         56;6  224.2018 (0.27)        214           1
test_clusters[8-1000]        4.9822 (4.29)       6.2051 (4.52)      5.0924 (4.26)     0.1622 (5.07)      5.0573 (4.27)     0.0817 (4.35)          3;5  196.3726 (0.23)        157           1
test_clusters[9-1000]        5.6745 (4.89)       6.2327 (4.54)      5.7889 (4.85)     0.1059 (3.31)      5.7562 (4.86)     0.1030 (5.48)        27;14  172.7443 (0.21)        167           1
test_clusters[10-1000]       6.3619 (5.48)       7.1560 (5.21)      6.5035 (5.44)     0.1406 (4.40)      6.4579 (5.45)     0.1335 (7.10)        18;10  153.7632 (0.18)        143           1
test_clusters[2-10000]      13.4468 (11.59)     15.0845 (10.99)    13.9851 (11.71)    0.4318 (13.50)    13.8081 (11.66)    0.6294 (33.48)        15;0   71.5046 (0.09)         52           1
test_clusters[3-10000]      21.7030 (18.71)     23.0929 (16.82)    22.0755 (18.48)    0.3743 (11.70)    21.9348 (18.52)    0.2340 (12.45)         8;8   45.2990 (0.05)         44           1
test_clusters[4-10000]      29.0019 (25.00)     31.0838 (22.64)    29.4537 (24.66)    0.5350 (16.73)    29.2094 (24.66)    0.5492 (29.21)         6;3   33.9516 (0.04)         33           1
test_clusters[5-10000]      36.6981 (31.63)     38.4651 (28.02)    37.3023 (31.23)    0.5515 (17.24)    37.1024 (31.33)    0.3015 (16.04)         7;5   26.8080 (0.03)         25           1
test_clusters[6-10000]      44.4876 (38.35)     47.1237 (34.32)    45.2404 (37.87)    0.7613 (23.80)    44.9090 (37.92)    0.4579 (24.36)         4;4   22.1041 (0.03)         22           1
test_clusters[7-10000]      52.8236 (45.53)     55.5902 (40.49)    53.5382 (44.82)    0.8668 (27.10)    53.1426 (44.87)    0.4577 (24.34)         4;4   18.6782 (0.02)         19           1
test_clusters[8-10000]      61.3377 (52.87)     64.5169 (46.99)    62.2492 (52.11)    0.9506 (29.72)    62.0034 (52.35)    0.7411 (39.42)         2;2   16.0645 (0.02)         16           1
test_clusters[9-10000]      70.6777 (60.92)     73.8326 (53.77)    71.3649 (59.74)    0.9406 (29.41)    70.9819 (59.93)    0.5923 (31.51)         2;2   14.0125 (0.02)         14           1
test_clusters[10-10000]     78.2284 (67.43)     81.0153 (59.01)    79.1805 (66.28)    0.7676 (24.00)    79.1060 (66.79)    0.7306 (38.86)         5;1   12.6294 (0.02)         13           1
test_100k_array_lmax        82.7992 (71.37)     84.5185 (61.56)    83.6621 (70.04)    0.5430 (16.98)    83.6196 (70.60)    0.9261 (49.26)         3;0   11.9528 (0.01)         12           1
test_100k_array_3d_lmax     99.0820 (85.41)    100.8662 (73.46)    99.8890 (83.62)    0.4963 (15.52)    99.8655 (84.32)    0.5826 (30.99)         3;0   10.0111 (0.01)         11           1
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


$ python scripts/profile.py --num_groups 1 --group_size 100000
[52.4379997253418, 17.281999588012695, 20.698999404907227]

$ python scripts/profile.py --num_groups 10 --group_size 10000
[51.66400146484375, 14.812000274658203, 15.59000015258789]

------------------------------------------------------------------------------------------

Linux x64, Optimize, BitSet TriHashSet

------------------------------------------------------------------------------------------------ benchmark: 22 tests -------------------------------------------------------------------------------------------------
Name (time in us)                   Min                    Max                   Mean                StdDev                 Median                   IQR            Outliers         OPS            Rounds  Iterations
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
test_clusters[2-1000]          773.5000 (1.0)         887.5000 (1.0)         790.2819 (1.0)         11.3995 (1.0)         785.8000 (1.0)         17.1000 (1.0)         302;3  1,265.3713 (1.0)        1022           1
test_clusters[3-1000]        1,185.0000 (1.53)      1,304.2000 (1.47)      1,210.1615 (1.53)        15.1664 (1.33)      1,204.9000 (1.53)        19.6000 (1.15)        231;8    826.3360 (0.65)        810           1
test_building1               1,547.8000 (2.00)      1,674.7000 (1.89)      1,584.1808 (2.00)        25.5330 (2.24)      1,575.2000 (2.00)        36.3000 (2.12)        115;8    631.2411 (0.50)        375           1
test_clusters[4-1000]        1,611.9000 (2.08)      1,755.1000 (1.98)      1,641.1993 (2.08)        19.3423 (1.70)      1,634.6500 (2.08)        25.7000 (1.50)        151;7    609.3105 (0.48)        580           1
test_building2               1,807.5000 (2.34)      1,919.9000 (2.16)      1,843.6400 (2.33)        21.9444 (1.93)      1,836.2000 (2.34)        32.5500 (1.90)        155;1    542.4052 (0.43)        485           1
test_clusters[5-1000]        2,067.8000 (2.67)      2,334.7000 (2.63)      2,104.7426 (2.66)        26.8203 (2.35)      2,097.8000 (2.67)        35.0000 (2.05)         96;4    475.1175 (0.38)        460           1
test_clusters[6-1000]        2,538.9000 (3.28)      2,661.5000 (3.00)      2,581.7149 (3.27)        24.8671 (2.18)      2,576.6000 (3.28)        37.2750 (2.18)        127;2    387.3394 (0.31)        383           1
test_clusters[7-1000]        2,996.8000 (3.87)      3,126.7000 (3.52)      3,041.9388 (3.85)        27.7910 (2.44)      3,035.6500 (3.86)        43.6000 (2.55)        111;0    328.7377 (0.26)        322           1
test_clusters[8-1000]        3,419.2000 (4.42)      3,592.9000 (4.05)      3,474.4110 (4.40)        35.0928 (3.08)      3,468.0000 (4.41)        48.5000 (2.84)         78;6    287.8186 (0.23)        282           1
test_clusters[9-1000]        3,868.4000 (5.00)      4,071.1000 (4.59)      3,929.3288 (4.97)        35.0517 (3.07)      3,925.7000 (5.00)        57.6500 (3.37)         80;1    254.4964 (0.20)        243           1
test_clusters[10-1000]       4,342.5000 (5.61)      4,603.4000 (5.19)      4,410.9362 (5.58)        43.9021 (3.85)      4,404.6000 (5.61)        61.0000 (3.57)         70;3    226.7092 (0.18)        224           1
test_clusters[2-10000]       9,178.4000 (11.87)     9,431.4000 (10.63)     9,269.7523 (11.73)       44.0514 (3.86)      9,265.9500 (11.79)       48.7500 (2.85)         23;3    107.8777 (0.09)         88           1
test_clusters[3-10000]      14,161.9000 (18.31)    14,575.8000 (16.42)    14,266.4523 (18.05)       59.2333 (5.20)     14,262.4000 (18.15)       58.3500 (3.41)         11;3     70.0945 (0.06)         65           1
test_clusters[4-10000]      19,232.4000 (24.86)    20,576.0000 (23.18)    19,618.3633 (24.82)      184.0217 (16.14)    19,631.5000 (24.98)      104.7250 (6.12)          7;6     50.9727 (0.04)         49           1
test_clusters[5-10000]      25,103.2000 (32.45)    26,180.5000 (29.50)    25,318.9615 (32.04)      273.6533 (24.01)    25,222.6000 (32.10)      103.7000 (6.06)          7;8     39.4961 (0.03)         39           1
test_clusters[6-10000]      29,771.4000 (38.49)    35,364.4000 (39.85)    30,692.8375 (38.84)    1,270.1042 (111.42)   30,249.2500 (38.49)      926.8500 (54.20)         3;3     32.5809 (0.03)         32           1
test_clusters[7-10000]      41,249.4000 (53.33)    42,606.7000 (48.01)    41,738.3593 (52.81)      352.6972 (30.94)    41,631.6000 (52.98)      509.3500 (29.79)         9;0     23.9588 (0.02)         27           1
test_clusters[8-10000]      48,098.9000 (62.18)    49,662.2000 (55.96)    48,518.0905 (61.39)      399.8020 (35.07)    48,371.2000 (61.56)      388.4500 (22.72)         3;2     20.6109 (0.02)         21           1
test_clusters[9-10000]      54,491.2000 (70.45)    57,371.5000 (64.64)    55,167.4526 (69.81)      646.0530 (56.67)    55,036.2000 (70.04)      360.7750 (21.10)         3;2     18.1266 (0.01)         19           1
test_clusters[10-10000]     60,461.5000 (78.17)    63,778.1000 (71.86)    61,322.8941 (77.60)      843.7477 (74.02)    61,055.1000 (77.70)      746.4250 (43.65)         3;1     16.3071 (0.01)         17           1
test_100k_array_lmax        61,293.6000 (79.24)    66,008.7000 (74.38)    62,170.4200 (78.67)    1,251.9531 (109.83)   61,702.2000 (78.52)    1,053.6250 (61.62)         2;1     16.0848 (0.01)         15           1
test_100k_array_3d_lmax     66,000.3000 (85.33)    66,998.6000 (75.49)    66,488.1733 (84.13)      285.7346 (25.07)    66,435.4000 (84.54)      290.1500 (16.97)         5;0     15.0403 (0.01)         15           1
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


(polylidar) ➜  polylidarv2 git:(optimize) ✗ python scripts/profile.py --num_groups 1 --group_size 100000
[63.02199935913086, 8.989999771118164, 16.166000366210938]

(polylidar) ➜  polylidarv2 git:(optimize) ✗ python scripts/profile.py --num_groups 10 --group_size 10000
[47.13999938964844, 6.504000186920166, 8.657999992370605]


+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Windows x64, Optimize, BitSet TriHashSet and ConstructPointHash with TriSet

----------------------------------------------------------------------------------- benchmark: 22 tests ------------------------------------------------------------------------------------
Name (time in ms)               Min                Max               Mean            StdDev             Median               IQR            Outliers       OPS            Rounds  Iterations
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
test_clusters[2-1000]        1.0656 (1.0)       1.2925 (1.0)       1.0991 (1.0)      0.0293 (1.12)      1.0893 (1.0)      0.0186 (1.0)         83;81  909.8473 (1.0)         846           1
test_clusters[3-1000]        1.6221 (1.52)      1.9366 (1.50)      1.6608 (1.51)     0.0299 (1.15)      1.6523 (1.52)     0.0283 (1.52)        79;32  602.1162 (0.66)        573           1
test_clusters[4-1000]        2.1731 (2.04)      2.4404 (1.89)      2.2345 (2.03)     0.0468 (1.79)      2.2189 (2.04)     0.0363 (1.95)        52;43  447.5308 (0.49)        434           1
test_building1               2.5114 (2.36)      2.8105 (2.17)      2.5463 (2.32)     0.0273 (1.05)      2.5395 (2.33)     0.0230 (1.23)        51;28  392.7331 (0.43)        349           1
test_clusters[5-1000]        2.7400 (2.57)      2.9188 (2.26)      2.7857 (2.53)     0.0266 (1.02)      2.7782 (2.55)     0.0366 (1.97)        108;1  358.9732 (0.39)        330           1
test_building2               2.8074 (2.63)      3.0020 (2.32)      2.8440 (2.59)     0.0261 (1.0)       2.8390 (2.61)     0.0229 (1.23)        68;31  351.6197 (0.39)        330           1
test_clusters[6-1000]        3.3963 (3.19)      4.5274 (3.50)      3.4929 (3.18)     0.1123 (4.31)      3.4682 (3.18)     0.0687 (3.69)        16;16  286.2986 (0.31)        142           1
test_clusters[7-1000]        4.0321 (3.78)      4.4700 (3.46)      4.1113 (3.74)     0.0560 (2.15)      4.0973 (3.76)     0.0605 (3.25)        44;12  243.2311 (0.27)        238           1
test_clusters[8-1000]        4.6137 (4.33)      5.0269 (3.89)      4.7007 (4.28)     0.0692 (2.66)      4.6794 (4.30)     0.0823 (4.43)        44;10  212.7360 (0.23)        203           1
test_clusters[9-1000]        5.1135 (4.80)      5.4363 (4.21)      5.1936 (4.73)     0.0513 (1.97)      5.1832 (4.76)     0.0692 (3.72)         59;2  192.5459 (0.21)        185           1
test_clusters[10-1000]       5.8095 (5.45)      9.1470 (7.08)      6.0983 (5.55)     0.3110 (11.94)     6.0250 (5.53)     0.2772 (14.90)        10;2  163.9803 (0.18)        152           1
test_clusters[2-10000]      12.4916 (11.72)    13.6583 (10.57)    12.8166 (11.66)    0.3088 (11.85)    12.6913 (11.65)    0.2259 (12.15)       15;14   78.0237 (0.09)         76           1
test_clusters[3-10000]      19.6429 (18.43)    21.1396 (16.36)    19.9846 (18.18)    0.3716 (14.26)    19.8328 (18.21)    0.1578 (8.48)          9;9   50.0386 (0.05)         48           1
test_clusters[4-10000]      25.8356 (24.25)    27.3744 (21.18)    26.2681 (23.90)    0.3520 (13.51)    26.1038 (23.96)    0.2757 (14.82)         8;5   38.0690 (0.04)         34           1
test_clusters[5-10000]      33.9185 (31.83)    35.3051 (27.32)    34.3014 (31.21)    0.3698 (14.19)    34.1728 (31.37)    0.3317 (17.83)         6;4   29.1533 (0.03)         29           1
test_clusters[6-10000]      40.5542 (38.06)    43.6514 (33.77)    41.2406 (37.52)    0.8368 (32.11)    40.9214 (37.57)    0.5240 (28.17)         4;4   24.2480 (0.03)         24           1
test_clusters[7-10000]      48.6813 (45.68)    51.9859 (40.22)    49.4657 (45.01)    0.9098 (34.92)    49.1101 (45.08)    0.5808 (31.23)         3;3   20.2160 (0.02)         20           1
test_clusters[8-10000]      55.4852 (52.07)    58.6541 (45.38)    56.5049 (51.41)    0.8584 (32.94)    56.2232 (51.61)    0.8571 (46.08)         5;1   17.6976 (0.02)         18           1
test_clusters[9-10000]      64.7085 (60.72)    67.7230 (52.40)    65.5465 (59.64)    0.9759 (37.45)    65.0956 (59.76)    0.9052 (48.66)         2;2   15.2564 (0.02)         15           1
test_100k_array_lmax        69.1259 (64.87)    70.8691 (54.83)    69.6171 (63.34)    0.5137 (19.71)    69.4412 (63.75)    0.4790 (25.76)         3;2   14.3643 (0.02)         15           1
test_clusters[10-10000]     72.5221 (68.06)    76.2262 (58.98)    73.5052 (66.88)    1.0234 (39.28)    73.1808 (67.18)    0.6240 (33.55)         2;2   13.6045 (0.01)         14           1
test_100k_array_3d_lmax     84.7917 (79.57)    85.7823 (66.37)    85.2097 (77.53)    0.4107 (15.76)    85.0814 (78.11)    0.8625 (46.37)         6;0   11.7358 (0.01)         12           1
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


$ python scripts/profile.py --num_groups 1 --group_size 100000
[52.55500030517578, 18.07200050354004, 7.796999931335449]

[52.13800048828125, 15.420999526977539, 6.245999813079834]

------------------------------------------------------------------------------------------------

Linux x64, Optimize, BitSet TriHashSet and ConstructPointHash with TriSet

---------------------------------------------------------------------------------------------- benchmark: 22 tests -----------------------------------------------------------------------------------------------
Name (time in us)                   Min                    Max                   Mean              StdDev                 Median                 IQR            Outliers         OPS            Rounds  Iterations
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
test_clusters[2-1000]          745.0000 (1.0)         787.5000 (1.0)         754.6632 (1.0)        5.2595 (1.0)         754.4000 (1.0)        6.6000 (1.0)        363;37  1,325.0944 (1.0)        1243           1
test_clusters[3-1000]        1,138.8000 (1.53)      1,195.7000 (1.52)      1,153.1697 (1.53)       6.3964 (1.22)      1,152.4000 (1.53)       7.7000 (1.17)       245;23    867.1751 (0.65)        834           1
test_building1               1,533.3000 (2.06)      1,599.8000 (2.03)      1,551.9694 (2.06)       8.4588 (1.61)      1,550.6000 (2.06)      10.9000 (1.65)       116;10    644.3426 (0.49)        379           1
test_clusters[4-1000]        1,548.2000 (2.08)      1,599.5000 (2.03)      1,560.6471 (2.07)       7.6104 (1.45)      1,560.1500 (2.07)      11.3000 (1.71)        211;7    640.7598 (0.48)        624           1
test_building2               1,777.4000 (2.39)      1,831.0000 (2.33)      1,799.2651 (2.38)       8.0385 (1.53)      1,798.7000 (2.38)      10.8000 (1.64)        164;8    555.7825 (0.42)        510           1
test_clusters[5-1000]        1,987.5000 (2.67)      2,042.1000 (2.59)      2,003.0531 (2.65)       8.6894 (1.65)      2,002.5000 (2.65)      12.1000 (1.83)        158;7    499.2379 (0.38)        490           1
test_clusters[6-1000]        2,433.8000 (3.27)      2,482.5000 (3.15)      2,452.1799 (3.25)       9.9469 (1.89)      2,452.3500 (3.25)      15.8000 (2.39)        157;0    407.8004 (0.31)        398           1
test_clusters[7-1000]        2,880.3000 (3.87)      2,940.0000 (3.73)      2,900.8351 (3.84)      10.0886 (1.92)      2,901.0000 (3.85)      13.1250 (1.99)        103;3    344.7283 (0.26)        305           1
test_clusters[8-1000]        3,281.6000 (4.40)      3,343.1000 (4.25)      3,311.1726 (4.39)      11.6263 (2.21)      3,312.4000 (4.39)      16.0250 (2.43)        108;1    302.0078 (0.23)        299           1
test_clusters[9-1000]        3,710.1000 (4.98)      3,772.0000 (4.79)      3,731.2974 (4.94)      12.1793 (2.32)      3,730.7500 (4.95)      19.1000 (2.89)        100;1    268.0033 (0.20)        266           1
test_clusters[10-1000]       4,152.0000 (5.57)      4,221.5000 (5.36)      4,182.5823 (5.54)      13.7257 (2.61)      4,183.6000 (5.55)      20.0000 (3.03)         77;0    239.0867 (0.18)        237           1
test_clusters[2-10000]       8,744.5000 (11.74)     8,892.6000 (11.29)     8,784.8604 (11.64)     21.4872 (4.09)      8,782.5000 (11.64)     26.8250 (4.06)         29;2    113.8322 (0.09)        111           1
test_clusters[3-10000]      13,516.1000 (18.14)    13,632.2000 (17.31)    13,550.9444 (17.96)     24.7298 (4.70)     13,544.8000 (17.95)     27.8000 (4.21)         17;3     73.7956 (0.06)         72           1
test_clusters[4-10000]      18,272.0000 (24.53)    18,766.5000 (23.83)    18,348.0962 (24.31)     69.8620 (13.28)    18,329.5000 (24.30)     46.8000 (7.09)          4;2     54.5016 (0.04)         52           1
test_clusters[5-10000]      23,823.3000 (31.98)    24,470.9000 (31.07)    23,940.9250 (31.72)     95.2587 (18.11)    23,934.4500 (31.73)     42.4500 (6.43)          3;4     41.7695 (0.03)         40           1
test_clusters[6-10000]      28,433.9000 (38.17)    28,939.1000 (36.75)    28,546.7824 (37.83)    123.7985 (23.54)    28,506.9000 (37.79)     84.8000 (12.85)         6;5     35.0302 (0.03)         34           1
test_clusters[7-10000]      33,774.3000 (45.33)    34,986.3000 (44.43)    33,942.0423 (44.98)    231.1097 (43.94)    33,905.8000 (44.94)    101.9000 (15.44)         2;2     29.4620 (0.02)         26           1
test_clusters[8-10000]      39,174.1000 (52.58)    39,908.3000 (50.68)    39,290.5043 (52.06)    149.0203 (28.33)    39,247.9000 (52.03)     94.6000 (14.33)         1;1     25.4514 (0.02)         23           1
test_clusters[9-10000]      52,024.8000 (69.83)    54,553.2000 (69.27)    52,404.4650 (69.44)    521.5006 (99.15)    52,290.1000 (69.31)    188.4000 (28.55)         1;1     19.0823 (0.01)         20           1
test_100k_array_lmax        58,143.1000 (78.04)    60,171.8000 (76.41)    58,955.2000 (78.12)    410.9311 (78.13)    58,882.1000 (78.05)    260.3000 (39.44)         3;2     16.9620 (0.01)         17           1
test_clusters[10-10000]     58,467.7000 (78.48)    60,499.2000 (76.82)    58,760.4765 (77.86)    468.8218 (89.14)    58,633.4000 (77.72)    259.1000 (39.26)         1;1     17.0182 (0.01)         17           1
test_100k_array_3d_lmax     62,330.2000 (83.66)    63,409.5000 (80.52)    62,539.6063 (82.87)    252.8560 (48.08)    62,498.5500 (82.85)    166.0000 (25.15)         1;1     15.9899 (0.01)         16           1
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

(polylidar) ➜  polylidarv2 git:(optimize) ✗ python scripts/profile.py --num_groups 1 --group_size 100000
[60.62699890136719, 9.701000213623047, 6.072999954223633]

[47.236000061035156, 6.539000034332275, 5.0370001792907715]