An application for evaluating the performance of testing any value in a set A matches a value in a set B. The evaluations are done in parallel.
Machine:
- CPU: 3 600 MHz x 8
- NVMe SSD
Number of values in a set: 10
Sets | Test set size | Matching sets | Duration |
---|---|---|---|
10 | 10 | 0 | 0.006301 s |
10 | 100 | 0 | 0.000030 s |
10 | 1000 | 0 | 0.000098 s |
10 | 10000 | 3 | 0.000386 s |
100 | 10 | 0 | 0.000032 s |
100 | 100 | 2 | 0.000047 s |
100 | 1000 | 4 | 0.000494 s |
100 | 10000 | 43 | 0.001760 s |
1000 | 10 | 1 | 0.000062 s |
1000 | 100 | 5 | 0.000232 s |
1000 | 1000 | 58 | 0.001838 s |
1000 | 10000 | 407 | 0.015398 s |
10000 | 10 | 3 | 0.000303 s |
10000 | 100 | 46 | 0.002302 s |
10000 | 1000 | 478 | 0.019392 s |
10000 | 10000 | 4047 | 0.144778 s |
100000 | 10 | 55 | 0.002105 s |
100000 | 100 | 483 | 0.019779 s |
100000 | 1000 | 4859 | 0.181027 s |
100000 | 10000 | 40012 | 1.475988 s |
Number of values in a set: 100
Sets | Test set size | Matching sets | Duration |
---|---|---|---|
10 | 10 | 0 | 0.000010 s |
10 | 100 | 1 | 0.000018 s |
10 | 1000 | 3 | 0.000057 s |
10 | 10000 | 10 | 0.000286 s |
100 | 10 | 0 | 0.000029 s |
100 | 100 | 2 | 0.000057 s |
100 | 1000 | 39 | 0.000278 s |
100 | 10000 | 100 | 0.000922 s |
1000 | 10 | 7 | 0.000167 s |
1000 | 100 | 46 | 0.000738 s |
1000 | 1000 | 401 | 0.002172 s |
1000 | 10000 | 994 | 0.006434 s |
10000 | 10 | 42 | 0.000659 s |
10000 | 100 | 506 | 0.003014 s |
10000 | 1000 | 3940 | 0.019635 s |
10000 | 10000 | 9942 | 0.048411 s |
100000 | 10 | 465 | 0.002645 s |
100000 | 100 | 4866 | 0.024125 s |
100000 | 1000 | 39460 | 0.187497 s |
100000 | 10000 | 99404 | 0.477725 s |
Number of values in a set: 1000
Sets | Test set size | Matching sets | Duration |
---|---|---|---|
10 | 10 | 0 | 0.000025 s |
10 | 100 | 3 | 0.000019 s |
10 | 1000 | 10 | 0.000028 s |
10 | 10000 | 10 | 0.000048 s |
100 | 10 | 3 | 0.000034 s |
100 | 100 | 41 | 0.000067 s |
100 | 1000 | 100 | 0.000102 s |
100 | 10000 | 100 | 0.000177 s |
1000 | 10 | 44 | 0.000172 s |
1000 | 100 | 359 | 0.000364 s |
1000 | 1000 | 994 | 0.000539 s |
1000 | 10000 | 1000 | 0.000628 s |
10000 | 10 | 483 | 0.001447 s |
10000 | 100 | 3991 | 0.003444 s |
10000 | 1000 | 9940 | 0.006270 s |
10000 | 10000 | 10000 | 0.006997 s |
100000 | 10 | 4888 | 0.013774 s |
100000 | 100 | 39265 | 0.035204 s |
100000 | 1000 | 99340 | 0.058818 s |
100000 | 10000 | 100000 | 0.059603 s |
Number of values in a set: 10000
Sets | Test set size | Matching sets | Duration |
---|---|---|---|
10 | 10 | 3 | 0.000044 s |
10 | 100 | 10 | 0.000034 s |
10 | 1000 | 10 | 0.000048 s |
10 | 10000 | 10 | 0.000041 s |
100 | 10 | 44 | 0.000061 s |
100 | 100 | 100 | 0.000076 s |
100 | 1000 | 100 | 0.000068 s |
100 | 10000 | 100 | 0.000101 s |
1000 | 10 | 401 | 0.000294 s |
1000 | 100 | 989 | 0.000423 s |
1000 | 1000 | 1000 | 0.000509 s |
1000 | 10000 | 1000 | 0.000439 s |
10000 | 10 | 4053 | 0.002220 s |
10000 | 100 | 9942 | 0.003838 s |
10000 | 1000 | 10000 | 0.005164 s |
10000 | 10000 | 10000 | 0.006144 s |
100000 | 10 | 40185 | 0.017047 s |
100000 | 100 | 99400 | 0.036445 s |
100000 | 1000 | 100000 | 0.035735 s |
100000 | 10000 | 100000 | 0.033349 s |
- Run the tests multiple times and average out the results. Do not use results from the first run.
- Figure out what causes the anomaly in the first test.
-
- Delay in CPU clock ramp up?
-
- Imprecise measurements?
-
- Cold instruction? cache??
- Store the test values in a ro_scalar_buffer instead of a vector and always iterate the smaller set.
-
- This result should see improvement: | 100000| 10000| 40024| 1.477368 s|