Project-OSRM / osrm-backend

Open Source Routing Machine - C++ backend
http://map.project-osrm.org
BSD 2-Clause "Simplified" License
6.33k stars 3.34k forks source link

Use std::popcount instead of __builtin_popcount #7026

Closed SiarheiFedartsou closed 1 day ago

SiarheiFedartsou commented 4 weeks ago

Benchmark Results

| Benchmark | Base | PR | |-----------|------|----| | alias | aliased u32: 11082
plain u32: 10970.5
aliased double: 15120.5
plain double: 15110.4 | aliased u32: 11147.6
plain u32: 10972.7
aliased double: 15119.4
plain double: 15112.7 | | e2e_match_ch | Ops: 27.21 ± 0.01 ops/s. Best: 27.23 ops/s
Total: 4813.88ms ± 1.72ms. Best: 4810.58ms
Min time: 3.27ms ± 0.06ms
Mean time: 36.75ms ± 0.01ms
Median time: 25.06ms ± 0.13ms
95th percentile: 121.97ms ± 0.12ms
99th percentile: 147.28ms ± 0.51ms
Max time: 156.00ms ± 0.42ms | Ops: 27.05 ± 0.01 ops/s. Best: 27.07 ops/s
Total: 4842.01ms ± 1.63ms. Best: 4838.68ms
Min time: 3.26ms ± 0.04ms
Mean time: 36.96ms ± 0.01ms
Median time: 25.22ms ± 0.11ms
95th percentile: 123.02ms ± 0.35ms
99th percentile: 148.35ms ± 0.26ms
Max time: 156.87ms ± 0.50ms | | e2e_match_mld | Ops: 43.47 ± 0.04 ops/s. Best: 43.53 ops/s
Total: 3013.94ms ± 2.57ms. Best: 3009.54ms
Min time: 2.59ms ± 0.04ms
Mean time: 23.01ms ± 0.02ms
Median time: 12.09ms ± 0.09ms
95th percentile: 74.96ms ± 0.26ms
99th percentile: 87.41ms ± 0.22ms
Max time: 100.88ms ± 0.15ms | Ops: 43.50 ± 0.01 ops/s. Best: 43.51 ops/s
Total: 3011.19ms ± 0.77ms. Best: 3010.52ms
Min time: 2.59ms ± 0.05ms
Mean time: 22.99ms ± 0.01ms
Median time: 12.13ms ± 0.11ms
95th percentile: 74.96ms ± 0.14ms
99th percentile: 87.15ms ± 0.08ms
Max time: 100.82ms ± 0.26ms | | e2e_nearest_ch | Ops: 635.48 ± 4.01 ops/s. Best: 642.97 ops/s
Total: 1573.36ms ± 10.04ms. Best: 1555.29ms
Min time: 1.28ms ± 0.00ms
Mean time: 1.57ms ± 0.01ms
Median time: 1.54ms ± 0.01ms
95th percentile: 1.96ms ± 0.00ms
99th percentile: 2.04ms ± 0.01ms
Max time: 9.33ms ± 7.40ms | Ops: 637.56 ± 3.52 ops/s. Best: 643.94 ops/s
Total: 1568.50ms ± 8.85ms. Best: 1552.94ms
Min time: 1.27ms ± 0.01ms
Mean time: 1.57ms ± 0.01ms
Median time: 1.53ms ± 0.01ms
95th percentile: 1.97ms ± 0.01ms
99th percentile: 2.04ms ± 0.01ms
Max time: 9.38ms ± 7.44ms | | e2e_nearest_mld | Ops: 635.43 ± 2.30 ops/s. Best: 639.02 ops/s
Total: 1573.63ms ± 5.90ms. Best: 1564.90ms
Min time: 1.28ms ± 0.01ms
Mean time: 1.57ms ± 0.01ms
Median time: 1.54ms ± 0.00ms
95th percentile: 1.96ms ± 0.01ms
99th percentile: 2.05ms ± 0.01ms
Max time: 9.33ms ± 7.39ms | Ops: 636.03 ± 4.86 ops/s. Best: 642.03 ops/s
Total: 1572.10ms ± 12.52ms. Best: 1557.55ms
Min time: 1.29ms ± 0.01ms
Mean time: 1.57ms ± 0.01ms
Median time: 1.53ms ± 0.01ms
95th percentile: 1.96ms ± 0.01ms
99th percentile: 2.05ms ± 0.01ms
Max time: 9.36ms ± 7.41ms | | e2e_route_ch | Ops: 215.71 ± 0.42 ops/s. Best: 216.23 ops/s
Total: 4636.04ms ± 9.00ms. Best: 4624.76ms
Min time: 1.83ms ± 0.06ms
Mean time: 4.64ms ± 0.01ms
Median time: 4.73ms ± 0.01ms
95th percentile: 6.09ms ± 0.03ms
99th percentile: 6.66ms ± 0.02ms
Max time: 13.42ms ± 6.36ms | Ops: 215.43 ± 0.50 ops/s. Best: 216.19 ops/s
Total: 4642.20ms ± 10.90ms. Best: 4625.55ms
Min time: 1.87ms ± 0.05ms
Mean time: 4.64ms ± 0.01ms
Median time: 4.75ms ± 0.01ms
95th percentile: 6.08ms ± 0.02ms
99th percentile: 6.64ms ± 0.02ms
Max time: 13.34ms ± 6.33ms | | e2e_route_mld | Ops: 177.78 ± 0.38 ops/s. Best: 178.57 ops/s
Total: 5625.05ms ± 12.40ms. Best: 5600.16ms
Min time: 1.85ms ± 0.07ms
Mean time: 5.62ms ± 0.01ms
Median time: 5.75ms ± 0.02ms
95th percentile: 7.63ms ± 0.02ms
99th percentile: 8.19ms ± 0.06ms
Max time: 14.74ms ± 5.88ms | Ops: 177.88 ± 0.39 ops/s. Best: 178.73 ops/s
Total: 5622.02ms ± 13.48ms. Best: 5595.14ms
Min time: 1.85ms ± 0.04ms
Mean time: 5.62ms ± 0.01ms
Median time: 5.74ms ± 0.02ms
95th percentile: 7.61ms ± 0.02ms
99th percentile: 8.19ms ± 0.10ms
Max time: 14.77ms ± 5.90ms | | e2e_table_ch | Ops: 212.94 ± 0.30 ops/s. Best: 213.51 ops/s
Total: 4696.09ms ± 6.57ms. Best: 4683.64ms
Min time: 2.46ms ± 0.04ms
Mean time: 4.70ms ± 0.01ms
Median time: 4.69ms ± 0.01ms
95th percentile: 6.40ms ± 0.01ms
99th percentile: 6.76ms ± 0.03ms
Max time: 13.96ms ± 7.04ms | Ops: 212.94 ± 0.46 ops/s. Best: 213.48 ops/s
Total: 4696.11ms ± 10.18ms. Best: 4684.18ms
Min time: 2.44ms ± 0.06ms
Mean time: 4.70ms ± 0.01ms
Median time: 4.69ms ± 0.01ms
95th percentile: 6.42ms ± 0.01ms
99th percentile: 6.74ms ± 0.04ms
Max time: 13.91ms ± 7.07ms | | e2e_table_mld | Ops: 69.53 ± 0.03 ops/s. Best: 69.59 ops/s
Total: 14383.01ms ± 7.12ms. Best: 14369.87ms
Min time: 6.02ms ± 0.02ms
Mean time: 14.38ms ± 0.01ms
Median time: 14.30ms ± 0.02ms
95th percentile: 21.94ms ± 0.03ms
99th percentile: 23.17ms ± 0.02ms
Max time: 29.41ms ± 5.60ms | Ops: 69.45 ± 0.04 ops/s. Best: 69.50 ops/s
Total: 14399.04ms ± 8.28ms. Best: 14388.05ms
Min time: 5.97ms ± 0.02ms
Mean time: 14.40ms ± 0.01ms
Median time: 14.33ms ± 0.02ms
95th percentile: 21.95ms ± 0.06ms
99th percentile: 23.19ms ± 0.05ms
Max time: 29.54ms ± 5.76ms | | e2e_trip_ch | Ops: 62.27 ± 0.04 ops/s. Best: 62.35 ops/s
Total: 16058.15ms ± 9.33ms. Best: 16037.22ms
Min time: 2.40ms ± 0.15ms
Mean time: 16.06ms ± 0.01ms
Median time: 15.28ms ± 0.02ms
95th percentile: 28.26ms ± 0.03ms
99th percentile: 30.26ms ± 0.11ms
Max time: 32.98ms ± 1.24ms | Ops: 62.13 ± 0.04 ops/s. Best: 62.19 ops/s
Total: 16094.39ms ± 10.00ms. Best: 16080.10ms
Min time: 2.44ms ± 0.14ms
Mean time: 16.09ms ± 0.01ms
Median time: 15.30ms ± 0.03ms
95th percentile: 28.31ms ± 0.03ms
99th percentile: 30.33ms ± 0.14ms
Max time: 33.12ms ± 1.27ms | | e2e_trip_mld | Ops: 36.75 ± 0.02 ops/s. Best: 36.77 ops/s
Total: 27211.44ms ± 16.93ms. Best: 27193.69ms
Min time: 2.45ms ± 0.21ms
Mean time: 27.21ms ± 0.02ms
Median time: 26.35ms ± 0.05ms
95th percentile: 44.29ms ± 0.07ms
99th percentile: 46.98ms ± 0.11ms
Max time: 49.31ms ± 0.23ms | Ops: 36.69 ± 0.02 ops/s. Best: 36.72 ops/s
Total: 27254.71ms ± 14.05ms. Best: 27234.06ms
Min time: 2.42ms ± 0.16ms
Mean time: 27.25ms ± 0.01ms
Median time: 26.38ms ± 0.08ms
95th percentile: 44.40ms ± 0.03ms
99th percentile: 47.03ms ± 0.07ms
Max time: 49.45ms ± 0.17ms | | json-render | String: 9.00567ms
Stringstream: 14.3008ms
Vector: 9.55194ms | String: 8.94265ms
Stringstream: 14.6225ms
Vector: 9.70468ms | | match_ch | Default radius:
7.05028ms/req at 82 coordinate
0.085979ms/coordinate
Radius 10m:
24.9688ms/req at 82 coordinate
0.304497ms/coordinate | Default radius:
7.07577ms/req at 82 coordinate
0.0862899ms/coordinate
Radius 10m:
25.0367ms/req at 82 coordinate
0.305326ms/coordinate | | match_mld | Default radius:
4.55709ms/req at 82 coordinate
0.0555742ms/coordinate
Radius 10m:
17.4315ms/req at 82 coordinate
0.21258ms/coordinate | Default radius:
4.39315ms/req at 82 coordinate
0.053575ms/coordinate
Radius 10m:
16.2283ms/req at 82 coordinate
0.197907ms/coordinate | | node_match_ch | Ops: 164.2 ± 1.2 ops/s. Best: 165.5 ops/s | Ops: 163.8 ± 1.1 ops/s. Best: 165.3 ops/s | | node_match_mld | Ops: 220.3 ± 1.4 ops/s. Best: 222.3 ops/s | Ops: 220.5 ± 1.0 ops/s. Best: 221.8 ops/s | | node_nearest_ch | Ops: 10002.6 ± 942.3 ops/s. Best: 11248.8 ops/s | Ops: 10283.3 ± 834.8 ops/s. Best: 12100.6 ops/s | | node_nearest_mld | Ops: 10476.4 ± 1035.1 ops/s. Best: 11554.0 ops/s | Ops: 10416.3 ± 903.2 ops/s. Best: 12022.8 ops/s | | node_route_ch | Ops: 969.4 ± 7.2 ops/s. Best: 979.4 ops/s | Ops: 1002.8 ± 14.8 ops/s. Best: 1025.3 ops/s | | node_route_mld | Ops: 509.0 ± 5.3 ops/s. Best: 514.9 ops/s | Ops: 509.7 ± 4.9 ops/s. Best: 516.1 ops/s | | node_table_ch | Ops: 178.5 ± 1.8 ops/s. Best: 181.1 ops/s | Ops: 178.8 ± 1.0 ops/s. Best: 180.6 ops/s | | node_table_mld | Ops: 38.0 ± 0.1 ops/s. Best: 38.1 ops/s | Ops: 37.8 ± 0.0 ops/s. Best: 37.9 ops/s | | node_trip_ch | Ops: 180.0 ± 1.1 ops/s. Best: 181.5 ops/s | Ops: 180.4 ± 0.9 ops/s. Best: 181.7 ops/s | | node_trip_mld | Ops: 61.4 ± 0.1 ops/s. Best: 61.6 ops/s | Ops: 61.6 ± 0.1 ops/s. Best: 61.8 ops/s | | osrm_contract | Time: 185.57s Peak RAM: 194.98MB | Time: 185.60s Peak RAM: 194.96MB | | osrm_customize | Time: 2.54s Peak RAM: 112.46MB | Time: 2.52s Peak RAM: 112.46MB | | osrm_extract | Time: 24.34s Peak RAM: 398.18MB | Time: 24.42s Peak RAM: 397.53MB | | osrm_partition | Time: 5.91s Peak RAM: 121.64MB | Time: 5.91s Peak RAM: 121.04MB | | packedvector | random write:
std::vector 185155 ms
util::packed_vector 377709 ms
slowdown: 2.03996
random read:
std::vector 100703 ms
util::packed_vector 192379 ms
slowdown: 1.91035 | random write:
std::vector 184671 ms
util::packed_vector 382463 ms
slowdown: 2.07105
random read:
std::vector 100777 ms
util::packed_vector 195112 ms
slowdown: 1.93607 | | random_match_ch | 500 matches, default radius
ops: 121.57 ± 0.22 ops/s. best: 121.82ops/s.
total: 468.87 ± 0.83ms. best: 467.92ms.
avg: 8.23 ± 0.01ms
min: 0.23 ± 0.00ms
max: 43.09 ± 0.10ms
p99: 43.09 ± 0.10ms

500 matches, radius=10
ops: 35.09 ± 0.02 ops/s. best: 35.11ops/s.
total: 1824.11 ± 1.11ms. best: 1822.95ms.
avg: 28.50 ± 0.02ms
min: 0.23 ± 0.00ms
max: 430.15 ± 1.35ms
p99: 430.15 ± 1.35ms

500 matches, radius=20
ops: 8.17 ± 0.01 ops/s. best: 8.19ops/s.
total: 7958.91 ± 12.08ms. best: 7937.36ms.
avg: 122.44 ± 0.19ms
min: 0.49 ± 0.00ms
max: 2275.58 ± 4.44ms
p99: 2275.58 ± 4.44ms

Peak RAM: 55.500MB | 500 matches, default radius
ops: 120.63 ± 0.23 ops/s. best: 120.89ops/s.
total: 472.54 ± 0.90ms. best: 471.49ms.
avg: 8.29 ± 0.02ms
min: 0.23 ± 0.00ms
max: 43.60 ± 0.11ms
p99: 43.60 ± 0.11ms

500 matches, radius=10
ops: 34.64 ± 0.02 ops/s. best: 34.67ops/s.
total: 1847.64 ± 0.99ms. best: 1845.95ms.
avg: 28.87 ± 0.02ms
min: 0.23 ± 0.00ms
max: 438.62 ± 1.22ms
p99: 438.62 ± 1.22ms

500 matches, radius=20
ops: 8.04 ± 0.01 ops/s. best: 8.06ops/s.
total: 8082.92 ± 11.81ms. best: 8062.45ms.
avg: 124.35 ± 0.18ms
min: 0.49 ± 0.00ms
max: 2334.02 ± 4.47ms
p99: 2334.02 ± 4.47ms

Peak RAM: 55.500MB | | random_match_mld | 500 matches, default radius
ops: 206.66 ± 0.44 ops/s. best: 207.05ops/s.
total: 275.82 ± 0.59ms. best: 275.29ms.
avg: 4.84 ± 0.01ms
min: 0.20 ± 0.00ms
max: 27.11 ± 0.01ms
p99: 27.11 ± 0.01ms

500 matches, radius=10
ops: 73.07 ± 0.11 ops/s. best: 73.28ops/s.
total: 875.92 ± 1.29ms. best: 873.39ms.
avg: 13.69 ± 0.02ms
min: 0.22 ± 0.00ms
max: 162.06 ± 0.69ms
p99: 162.06 ± 0.69ms

500 matches, radius=20
ops: 15.58 ± 0.01 ops/s. best: 15.60ops/s.
total: 4172.50 ± 2.78ms. best: 4166.67ms.
avg: 64.19 ± 0.04ms
min: 0.29 ± 0.00ms
max: 843.97 ± 1.53ms
p99: 843.97 ± 1.53ms

Peak RAM: 51.500MB | 500 matches, default radius
ops: 206.43 ± 0.51 ops/s. best: 206.92ops/s.
total: 276.12 ± 0.69ms. best: 275.47ms.
avg: 4.84 ± 0.01ms
min: 0.20 ± 0.00ms
max: 27.13 ± 0.00ms
p99: 27.13 ± 0.00ms

500 matches, radius=10
ops: 73.01 ± 0.10 ops/s. best: 73.21ops/s.
total: 876.63 ± 1.22ms. best: 874.20ms.
avg: 13.70 ± 0.02ms
min: 0.22 ± 0.00ms
max: 162.14 ± 0.68ms
p99: 162.14 ± 0.68ms

500 matches, radius=20
ops: 15.56 ± 0.01 ops/s. best: 15.57ops/s.
total: 4178.69 ± 2.53ms. best: 4173.68ms.
avg: 64.29 ± 0.04ms
min: 0.29 ± 0.00ms
max: 844.59 ± 1.46ms
p99: 844.59 ± 1.46ms

Peak RAM: 51.500MB | | random_nearest_ch | 10000 nearest, number_of_results=1
ops: 21855.25 ± 43.77 ops/s. best: 21889.08ops/s.
total: 457.56 ± 0.92ms. best: 456.85ms.
avg: 0.05 ± 0.00ms
min: 0.02 ± 0.00ms
max: 0.16 ± 0.03ms
p99: 0.10 ± 0.00ms

10000 nearest, number_of_results=5
ops: 16082.78 ± 5.94 ops/s. best: 16089.36ops/s.
total: 621.78 ± 0.23ms. best: 621.53ms.
avg: 0.06 ± 0.00ms
min: 0.03 ± 0.00ms
max: 0.15 ± 0.00ms
p99: 0.12 ± 0.00ms

10000 nearest, number_of_results=10
ops: 12292.98 ± 2.79 ops/s. best: 12297.33ops/s.
total: 813.47 ± 0.18ms. best: 813.18ms.
avg: 0.08 ± 0.00ms
min: 0.04 ± 0.00ms
max: 0.19 ± 0.00ms
p99: 0.15 ± 0.00ms

Peak RAM: 35.000MB | 10000 nearest, number_of_results=1
ops: 22055.59 ± 38.00 ops/s. best: 22087.10ops/s.
total: 453.40 ± 0.78ms. best: 452.75ms.
avg: 0.05 ± 0.00ms
min: 0.02 ± 0.00ms
max: 0.16 ± 0.03ms
p99: 0.10 ± 0.00ms

10000 nearest, number_of_results=5
ops: 16243.27 ± 7.47 ops/s. best: 16251.62ops/s.
total: 615.64 ± 0.28ms. best: 615.32ms.
avg: 0.06 ± 0.00ms
min: 0.03 ± 0.00ms
max: 0.15 ± 0.00ms
p99: 0.12 ± 0.00ms

10000 nearest, number_of_results=10
ops: 12445.89 ± 6.98 ops/s. best: 12453.10ops/s.
total: 803.48 ± 0.46ms. best: 803.01ms.
avg: 0.08 ± 0.00ms
min: 0.04 ± 0.00ms
max: 0.19 ± 0.00ms
p99: 0.15 ± 0.00ms

Peak RAM: 35.000MB | | random_nearest_mld | 10000 nearest, number_of_results=1
ops: 21845.13 ± 35.37 ops/s. best: 21874.40ops/s.
total: 457.77 ± 0.74ms. best: 457.16ms.
avg: 0.05 ± 0.00ms
min: 0.02 ± 0.00ms
max: 0.15 ± 0.02ms
p99: 0.10 ± 0.00ms

10000 nearest, number_of_results=5
ops: 16079.39 ± 7.78 ops/s. best: 16086.51ops/s.
total: 621.91 ± 0.30ms. best: 621.64ms.
avg: 0.06 ± 0.00ms
min: 0.03 ± 0.00ms
max: 0.15 ± 0.00ms
p99: 0.12 ± 0.00ms

10000 nearest, number_of_results=10
ops: 12288.84 ± 5.00 ops/s. best: 12294.13ops/s.
total: 813.75 ± 0.33ms. best: 813.40ms.
avg: 0.08 ± 0.00ms
min: 0.04 ± 0.00ms
max: 0.19 ± 0.00ms
p99: 0.15 ± 0.00ms

Peak RAM: 35.000MB | 10000 nearest, number_of_results=1
ops: 22051.35 ± 36.51 ops/s. best: 22087.53ops/s.
total: 453.49 ± 0.75ms. best: 452.74ms.
avg: 0.05 ± 0.00ms
min: 0.02 ± 0.00ms
max: 0.15 ± 0.02ms
p99: 0.10 ± 0.00ms

10000 nearest, number_of_results=5
ops: 16252.83 ± 5.61 ops/s. best: 16257.97ops/s.
total: 615.28 ± 0.21ms. best: 615.08ms.
avg: 0.06 ± 0.00ms
min: 0.03 ± 0.00ms
max: 0.15 ± 0.00ms
p99: 0.12 ± 0.00ms

10000 nearest, number_of_results=10
ops: 12455.84 ± 4.00 ops/s. best: 12458.98ops/s.
total: 802.84 ± 0.26ms. best: 802.63ms.
avg: 0.08 ± 0.00ms
min: 0.04 ± 0.00ms
max: 0.19 ± 0.00ms
p99: 0.15 ± 0.00ms

Peak RAM: 35.000MB | | random_route_ch | 1000 routes, 3 coordinates, no alternatives, overview=full, steps=true
ops: 284.51 ± 0.21 ops/s. best: 284.73ops/s.
total: 3458.62 ± 2.51ms. best: 3455.87ms.
avg: 3.51 ± 0.00ms
min: 0.53 ± 0.00ms
max: 6.04 ± 0.03ms
p99: 5.28 ± 0.02ms

1000 routes, 2 coordinates, 3 alternatives, overview=full, steps=true
ops: 331.45 ± 0.02 ops/s. best: 331.47ops/s.
total: 3017.02 ± 0.14ms. best: 3016.89ms.
avg: 3.02 ± 0.00ms
min: 0.08 ± 0.00ms
max: 7.91 ± 0.05ms
p99: 7.09 ± 0.01ms

1000 routes, 3 coordinates, no alternatives, overview=false, steps=false
ops: 583.87 ± 0.29 ops/s. best: 584.36ops/s.
total: 1685.31 ± 0.78ms. best: 1683.88ms.
avg: 1.71 ± 0.00ms
min: 0.36 ± 0.00ms
max: 2.74 ± 0.01ms
p99: 2.43 ± 0.01ms

1000 routes, 2 coordinates, 3 alternatives, overview=false, steps=false
ops: 634.44 ± 0.28 ops/s. best: 634.75ops/s.
total: 1576.19 ± 0.72ms. best: 1575.42ms.
avg: 1.58 ± 0.00ms
min: 0.06 ± 0.00ms
max: 4.16 ± 0.01ms
p99: 3.89 ± 0.00ms

Peak RAM: 84.000MB | 1000 routes, 3 coordinates, no alternatives, overview=full, steps=true
ops: 283.11 ± 0.10 ops/s. best: 283.23ops/s.
total: 3475.68 ± 1.21ms. best: 3474.23ms.
avg: 3.53 ± 0.00ms
min: 0.51 ± 0.01ms
max: 6.03 ± 0.01ms
p99: 5.25 ± 0.01ms

1000 routes, 2 coordinates, 3 alternatives, overview=full, steps=true
ops: 331.63 ± 0.06 ops/s. best: 331.71ops/s.
total: 3015.38 ± 0.53ms. best: 3014.68ms.
avg: 3.02 ± 0.00ms
min: 0.08 ± 0.00ms
max: 7.91 ± 0.05ms
p99: 7.09 ± 0.01ms

1000 routes, 3 coordinates, no alternatives, overview=false, steps=false
ops: 578.59 ± 0.67 ops/s. best: 579.77ops/s.
total: 1700.68 ± 1.98ms. best: 1697.22ms.
avg: 1.73 ± 0.00ms
min: 0.37 ± 0.00ms
max: 2.78 ± 0.01ms
p99: 2.44 ± 0.01ms

1000 routes, 2 coordinates, 3 alternatives, overview=false, steps=false
ops: 631.98 ± 0.20 ops/s. best: 632.43ops/s.
total: 1582.34 ± 0.51ms. best: 1581.20ms.
avg: 1.58 ± 0.00ms
min: 0.06 ± 0.00ms
max: 4.20 ± 0.01ms
p99: 3.92 ± 0.01ms

Peak RAM: 84.000MB | | random_route_mld | 1000 routes, 3 coordinates, no alternatives, overview=full, steps=true
ops: 146.62 ± 0.03 ops/s. best: 146.65ops/s.
total: 6711.00 ± 1.20ms. best: 6709.85ms.
avg: 6.82 ± 0.00ms
min: 0.53 ± 0.01ms
max: 16.54 ± 0.02ms
p99: 11.08 ± 0.01ms

1000 routes, 2 coordinates, 3 alternatives, overview=full, steps=true
ops: 139.49 ± 0.05 ops/s. best: 139.54ops/s.
total: 7169.12 ± 2.70ms. best: 7166.26ms.
avg: 7.17 ± 0.00ms
min: 0.08 ± 0.00ms
max: 16.50 ± 0.04ms
p99: 15.51 ± 0.03ms

1000 routes, 3 coordinates, no alternatives, overview=false, steps=false
ops: 203.87 ± 0.03 ops/s. best: 203.93ops/s.
total: 4826.62 ± 0.73ms. best: 4825.26ms.
avg: 4.91 ± 0.00ms
min: 0.39 ± 0.00ms
max: 13.72 ± 0.01ms
p99: 8.48 ± 0.01ms

1000 routes, 2 coordinates, 3 alternatives, overview=false, steps=false
ops: 175.58 ± 0.02 ops/s. best: 175.60ops/s.
total: 5695.35 ± 0.74ms. best: 5694.62ms.
avg: 5.70 ± 0.00ms
min: 0.06 ± 0.00ms
max: 12.90 ± 0.09ms
p99: 11.92 ± 0.02ms

Peak RAM: 73.984MB | 1000 routes, 3 coordinates, no alternatives, overview=full, steps=true
ops: 146.99 ± 0.03 ops/s. best: 147.03ops/s.
total: 6694.36 ± 1.29ms. best: 6692.36ms.
avg: 6.80 ± 0.00ms
min: 0.53 ± 0.00ms
max: 16.47 ± 0.01ms
p99: 11.08 ± 0.02ms

1000 routes, 2 coordinates, 3 alternatives, overview=full, steps=true
ops: 139.54 ± 0.13 ops/s. best: 139.69ops/s.
total: 7166.67 ± 6.67ms. best: 7158.83ms.
avg: 7.17 ± 0.01ms
min: 0.07 ± 0.00ms
max: 16.56 ± 0.19ms
p99: 15.51 ± 0.04ms

1000 routes, 3 coordinates, no alternatives, overview=false, steps=false
ops: 204.53 ± 0.03 ops/s. best: 204.58ops/s.
total: 4811.02 ± 0.79ms. best: 4809.77ms.
avg: 4.89 ± 0.00ms
min: 0.39 ± 0.00ms
max: 13.67 ± 0.01ms
p99: 8.45 ± 0.01ms

1000 routes, 2 coordinates, 3 alternatives, overview=false, steps=false
ops: 175.69 ± 0.07 ops/s. best: 175.80ops/s.
total: 5691.85 ± 2.28ms. best: 5688.26ms.
avg: 5.69 ± 0.00ms
min: 0.06 ± 0.00ms
max: 12.83 ± 0.02ms
p99: 11.94 ± 0.05ms

Peak RAM: 73.984MB | | random_table_ch | 250 tables, 3 coordinates
ops: 1098.71 ± 3.97 ops/s. best: 1101.63ops/s.
total: 227.54 ± 0.83ms. best: 226.94ms.
avg: 0.91 ± 0.00ms
min: 0.61 ± 0.00ms
max: 1.28 ± 0.17ms
p99: 1.14 ± 0.01ms

250 tables, 25 coordinates
ops: 122.90 ± 0.04 ops/s. best: 122.97ops/s.
total: 2034.10 ± 0.69ms. best: 2032.97ms.
avg: 8.14 ± 0.00ms
min: 7.30 ± 0.01ms
max: 9.02 ± 0.01ms
p99: 8.79 ± 0.01ms

250 tables, 50 coordinates
ops: 59.78 ± 0.01 ops/s. best: 59.78ops/s.
total: 4182.31 ± 0.40ms. best: 4181.73ms.
avg: 16.73 ± 0.00ms
min: 15.55 ± 0.01ms
max: 17.75 ± 0.02ms
p99: 17.63 ± 0.02ms

Peak RAM: 63.000MB | 250 tables, 3 coordinates
ops: 1104.08 ± 4.34 ops/s. best: 1107.50ops/s.
total: 226.44 ± 0.90ms. best: 225.73ms.
avg: 0.91 ± 0.00ms
min: 0.60 ± 0.00ms
max: 1.27 ± 0.15ms
p99: 1.14 ± 0.01ms

250 tables, 25 coordinates
ops: 123.61 ± 0.04 ops/s. best: 123.67ops/s.
total: 2022.51 ± 0.58ms. best: 2021.48ms.
avg: 8.09 ± 0.00ms
min: 7.26 ± 0.01ms
max: 8.97 ± 0.01ms
p99: 8.73 ± 0.01ms

250 tables, 50 coordinates
ops: 60.26 ± 0.01 ops/s. best: 60.27ops/s.
total: 4148.59 ± 0.51ms. best: 4147.84ms.
avg: 16.59 ± 0.00ms
min: 15.43 ± 0.01ms
max: 17.56 ± 0.01ms
p99: 17.46 ± 0.01ms

Peak RAM: 63.000MB | | random_table_mld | 250 tables, 3 coordinates
ops: 227.31 ± 0.34 ops/s. best: 227.73ops/s.
total: 1099.82 ± 1.71ms. best: 1097.78ms.
avg: 4.40 ± 0.01ms
min: 3.48 ± 0.00ms
max: 5.63 ± 0.02ms
p99: 5.46 ± 0.06ms

250 tables, 25 coordinates
ops: 23.89 ± 0.00 ops/s. best: 23.89ops/s.
total: 10466.09 ± 1.21ms. best: 10464.57ms.
avg: 41.86 ± 0.00ms
min: 38.68 ± 0.05ms
max: 45.75 ± 0.05ms
p99: 45.16 ± 0.04ms

250 tables, 50 coordinates
ops: 11.04 ± 0.00 ops/s. best: 11.05ops/s.
total: 22640.52 ± 8.29ms. best: 22625.26ms.
avg: 90.56 ± 0.03ms
min: 85.68 ± 0.10ms
max: 96.41 ± 0.11ms
p99: 94.49 ± 0.11ms

Peak RAM: 63.281MB | 250 tables, 3 coordinates
ops: 225.11 ± 0.28 ops/s. best: 225.43ops/s.
total: 1110.59 ± 1.41ms. best: 1109.00ms.
avg: 4.44 ± 0.01ms
min: 3.50 ± 0.01ms
max: 5.71 ± 0.01ms
p99: 5.51 ± 0.01ms

250 tables, 25 coordinates
ops: 23.72 ± 0.01 ops/s. best: 23.74ops/s.
total: 10538.65 ± 4.09ms. best: 10530.49ms.
avg: 42.15 ± 0.02ms
min: 38.84 ± 0.09ms
max: 46.06 ± 0.15ms
p99: 45.44 ± 0.13ms

250 tables, 50 coordinates
ops: 11.00 ± 0.01 ops/s. best: 11.01ops/s.
total: 22731.33 ± 18.57ms. best: 22698.52ms.
avg: 90.93 ± 0.07ms
min: 86.23 ± 0.28ms
max: 96.34 ± 0.50ms
p99: 95.00 ± 0.22ms

Peak RAM: 63.281MB | | random_trip_ch | 250 trips, 3 coordinates
ops: 319.75 ± 0.36 ops/s. best: 320.12ops/s.
total: 781.86 ± 0.93ms. best: 780.95ms.
avg: 3.13 ± 0.00ms
min: 1.63 ± 0.00ms
max: 4.35 ± 0.01ms
p99: 4.23 ± 0.00ms

250 trips, 5 coordinates
ops: 207.46 ± 0.03 ops/s. best: 207.50ops/s.
total: 1205.03 ± 0.20ms. best: 1204.81ms.
avg: 4.82 ± 0.00ms
min: 3.18 ± 0.01ms
max: 6.22 ± 0.01ms
p99: 6.00 ± 0.01ms

Peak RAM: 74.000MB | 250 trips, 3 coordinates
ops: 319.17 ± 0.27 ops/s. best: 319.43ops/s.
total: 783.29 ± 0.67ms. best: 782.65ms.
avg: 3.13 ± 0.00ms
min: 1.62 ± 0.01ms
max: 4.36 ± 0.01ms
p99: 4.23 ± 0.00ms

250 trips, 5 coordinates
ops: 207.40 ± 0.03 ops/s. best: 207.43ops/s.
total: 1205.38 ± 0.15ms. best: 1205.23ms.
avg: 4.82 ± 0.00ms
min: 3.18 ± 0.00ms
max: 6.20 ± 0.01ms
p99: 6.01 ± 0.01ms

Peak RAM: 74.000MB | | random_trip_mld | 250 trips, 3 coordinates
ops: 107.01 ± 0.07 ops/s. best: 107.07ops/s.
total: 2336.20 ± 1.57ms. best: 2334.98ms.
avg: 9.34 ± 0.01ms
min: 5.44 ± 0.01ms
max: 12.18 ± 0.02ms
p99: 12.04 ± 0.01ms

250 trips, 5 coordinates
ops: 68.89 ± 0.01 ops/s. best: 68.90ops/s.
total: 3628.85 ± 0.38ms. best: 3628.31ms.
avg: 14.52 ± 0.00ms
min: 10.08 ± 0.01ms
max: 17.92 ± 0.03ms
p99: 17.40 ± 0.01ms

Peak RAM: 69.500MB | 250 trips, 3 coordinates
ops: 106.00 ± 0.37 ops/s. best: 106.60ops/s.
total: 2358.63 ± 8.14ms. best: 2345.21ms.
avg: 9.43 ± 0.03ms
min: 5.50 ± 0.06ms
max: 12.35 ± 0.03ms
p99: 12.25 ± 0.07ms

250 trips, 5 coordinates
ops: 68.75 ± 0.18 ops/s. best: 68.91ops/s.
total: 3636.58 ± 9.67ms. best: 3627.78ms.
avg: 14.55 ± 0.04ms
min: 10.11 ± 0.03ms
max: 18.10 ± 0.10ms
p99: 17.37 ± 0.06ms

Peak RAM: 69.500MB | | route_ch | 1000 routes, 3 coordinates, no alternatives, overview=full, steps=true
637.043ms
0.637043ms/req
1000 routes, 2 coordinates, 3 alternatives, overview=full, steps=true
780.275ms
0.780275ms/req
1000 routes, 3 coordinates, no alternatives, overview=false, steps=false
245.246ms
0.245246ms/req
1000 routes, 2 coordinates, 3 alternatives, overview=false, steps=false
215.977ms
0.215977ms/req | 1000 routes, 3 coordinates, no alternatives, overview=full, steps=true
635.93ms
0.63593ms/req
1000 routes, 2 coordinates, 3 alternatives, overview=full, steps=true
776.112ms
0.776112ms/req
1000 routes, 3 coordinates, no alternatives, overview=false, steps=false
247.73ms
0.24773ms/req
1000 routes, 2 coordinates, 3 alternatives, overview=false, steps=false
216.441ms
0.216441ms/req | | route_mld | 1000 routes, 3 coordinates, no alternatives, overview=full, steps=true
816.249ms
0.816249ms/req
1000 routes, 2 coordinates, 3 alternatives, overview=full, steps=true
1065.04ms
1.06504ms/req
1000 routes, 3 coordinates, no alternatives, overview=false, steps=false
423.361ms
0.423361ms/req
1000 routes, 2 coordinates, 3 alternatives, overview=false, steps=false
487.551ms
0.487551ms/req | 1000 routes, 3 coordinates, no alternatives, overview=full, steps=true
805.278ms
0.805278ms/req
1000 routes, 2 coordinates, 3 alternatives, overview=full, steps=true
1034.78ms
1.03478ms/req
1000 routes, 3 coordinates, no alternatives, overview=false, steps=false
412.557ms
0.412557ms/req
1000 routes, 2 coordinates, 3 alternatives, overview=false, steps=false
460.689ms
0.460689ms/req | | rtree | 1 result:
227.555ms -> 0.0227555 ms/query
10 results:
258.264ms -> 0.0258264 ms/query | 1 result:
227.245ms -> 0.0227245 ms/query
10 results:
257.971ms -> 0.0257971 ms/query |
SiarheiFedartsou commented 1 day ago

I'll take a liberty to merge it without review...