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

Add std::vector<...>::reserve in ContiguousInternalMemoryDataFacadeBase::GetOverridesThatStartAt #7024

Closed SiarheiFedartsou closed 1 day ago

SiarheiFedartsou commented 4 weeks ago

Yet another microoptimisation...

Benchmark Results

| Benchmark | Base | PR | |-----------|------|----| | alias | aliased u32: 11138.5
plain u32: 10969.9
aliased double: 15142.2
plain double: 15116.6 | aliased u32: 10988.3
plain u32: 10878.6
aliased double: 14968.5
plain double: 14994.3 | | e2e_match_ch | Ops: 25.39 ± 0.01 ops/s. Best: 25.40 ops/s
Total: 5159.19ms ± 2.59ms. Best: 5156.84ms
Min time: 3.20ms ± 0.03ms
Mean time: 39.38ms ± 0.02ms
Median time: 29.61ms ± 0.08ms
95th percentile: 134.81ms ± 0.25ms
99th percentile: 162.80ms ± 0.45ms
Max time: 180.73ms ± 0.64ms | Ops: 25.14 ± 0.01 ops/s. Best: 25.15 ops/s
Total: 5211.31ms ± 1.07ms. Best: 5209.64ms
Min time: 3.25ms ± 0.02ms
Mean time: 39.78ms ± 0.01ms
Median time: 29.90ms ± 0.11ms
95th percentile: 136.89ms ± 0.31ms
99th percentile: 164.39ms ± 0.60ms
Max time: 183.81ms ± 0.96ms | | e2e_match_mld | Ops: 43.47 ± 0.02 ops/s. Best: 43.50 ops/s
Total: 3013.23ms ± 1.32ms. Best: 3011.29ms
Min time: 2.59ms ± 0.04ms
Mean time: 23.00ms ± 0.01ms
Median time: 12.08ms ± 0.15ms
95th percentile: 75.32ms ± 0.32ms
99th percentile: 87.34ms ± 0.65ms
Max time: 100.32ms ± 0.68ms | Ops: 43.37 ± 0.02 ops/s. Best: 43.39 ops/s
Total: 3020.79ms ± 1.05ms. Best: 3019.38ms
Min time: 2.56ms ± 0.04ms
Mean time: 23.06ms ± 0.01ms
Median time: 12.09ms ± 0.06ms
95th percentile: 75.65ms ± 0.24ms
99th percentile: 87.41ms ± 0.25ms
Max time: 101.22ms ± 0.30ms | | e2e_nearest_ch | Ops: 638.16 ± 5.08 ops/s. Best: 644.90 ops/s
Total: 1566.77ms ± 11.93ms. Best: 1550.62ms
Min time: 1.27ms ± 0.00ms
Mean time: 1.57ms ± 0.01ms
Median time: 1.53ms ± 0.01ms
95th percentile: 1.95ms ± 0.01ms
99th percentile: 2.04ms ± 0.01ms
Max time: 9.32ms ± 7.42ms | Ops: 635.03 ± 2.96 ops/s. Best: 639.95 ops/s
Total: 1574.74ms ± 7.47ms. Best: 1562.63ms
Min time: 1.28ms ± 0.01ms
Mean time: 1.57ms ± 0.01ms
Median time: 1.54ms ± 0.01ms
95th percentile: 1.97ms ± 0.01ms
99th percentile: 2.06ms ± 0.01ms
Max time: 9.36ms ± 7.43ms | | e2e_nearest_mld | Ops: 639.02 ± 4.24 ops/s. Best: 644.56 ops/s
Total: 1564.72ms ± 10.41ms. Best: 1551.44ms
Min time: 1.27ms ± 0.01ms
Mean time: 1.56ms ± 0.01ms
Median time: 1.53ms ± 0.01ms
95th percentile: 1.95ms ± 0.01ms
99th percentile: 2.04ms ± 0.01ms
Max time: 9.31ms ± 7.38ms | Ops: 633.76 ± 5.89 ops/s. Best: 645.74 ops/s
Total: 1577.78ms ± 13.48ms. Best: 1548.61ms
Min time: 1.27ms ± 0.01ms
Mean time: 1.58ms ± 0.01ms
Median time: 1.54ms ± 0.01ms
95th percentile: 1.96ms ± 0.01ms
99th percentile: 2.06ms ± 0.01ms
Max time: 9.34ms ± 7.36ms | | e2e_route_ch | Ops: 216.33 ± 0.50 ops/s. Best: 216.92 ops/s
Total: 4622.34ms ± 10.61ms. Best: 4610.00ms
Min time: 1.88ms ± 0.06ms
Mean time: 4.62ms ± 0.01ms
Median time: 4.71ms ± 0.01ms
95th percentile: 6.08ms ± 0.02ms
99th percentile: 6.60ms ± 0.02ms
Max time: 13.35ms ± 6.36ms | Ops: 215.73 ± 0.55 ops/s. Best: 216.62 ops/s
Total: 4635.43ms ± 11.81ms. Best: 4616.28ms
Min time: 1.86ms ± 0.05ms
Mean time: 4.64ms ± 0.01ms
Median time: 4.72ms ± 0.01ms
95th percentile: 6.11ms ± 0.03ms
99th percentile: 6.64ms ± 0.03ms
Max time: 13.33ms ± 6.40ms | | e2e_route_mld | Ops: 178.10 ± 0.34 ops/s. Best: 178.74 ops/s
Total: 5614.87ms ± 10.93ms. Best: 5594.73ms
Min time: 1.85ms ± 0.05ms
Mean time: 5.61ms ± 0.01ms
Median time: 5.74ms ± 0.02ms
95th percentile: 7.64ms ± 0.02ms
99th percentile: 8.19ms ± 0.06ms
Max time: 14.78ms ± 5.95ms | Ops: 177.39 ± 0.32 ops/s. Best: 178.00 ops/s
Total: 5637.35ms ± 10.52ms. Best: 5617.88ms
Min time: 1.83ms ± 0.05ms
Mean time: 5.64ms ± 0.01ms
Median time: 5.76ms ± 0.02ms
95th percentile: 7.66ms ± 0.02ms
99th percentile: 8.24ms ± 0.11ms
Max time: 14.80ms ± 5.98ms | | e2e_table_ch | Ops: 216.42 ± 0.45 ops/s. Best: 217.27 ops/s
Total: 4620.61ms ± 10.58ms. Best: 4602.56ms
Min time: 2.53ms ± 0.02ms
Mean time: 4.62ms ± 0.01ms
Median time: 4.63ms ± 0.01ms
95th percentile: 6.25ms ± 0.01ms
99th percentile: 6.59ms ± 0.03ms
Max time: 13.80ms ± 7.04ms | Ops: 216.16 ± 0.38 ops/s. Best: 216.66 ops/s
Total: 4626.01ms ± 8.41ms. Best: 4615.56ms
Min time: 2.52ms ± 0.02ms
Mean time: 4.63ms ± 0.01ms
Median time: 4.62ms ± 0.01ms
95th percentile: 6.26ms ± 0.02ms
99th percentile: 6.62ms ± 0.01ms
Max time: 13.77ms ± 7.05ms | | e2e_table_mld | Ops: 69.60 ± 0.04 ops/s. Best: 69.67 ops/s
Total: 14368.34ms ± 9.08ms. Best: 14353.17ms
Min time: 6.01ms ± 0.03ms
Mean time: 14.37ms ± 0.01ms
Median time: 14.30ms ± 0.02ms
95th percentile: 21.91ms ± 0.07ms
99th percentile: 23.08ms ± 0.08ms
Max time: 29.45ms ± 5.79ms | Ops: 69.52 ± 0.04 ops/s. Best: 69.56 ops/s
Total: 14384.15ms ± 8.44ms. Best: 14375.33ms
Min time: 6.01ms ± 0.02ms
Mean time: 14.38ms ± 0.01ms
Median time: 14.30ms ± 0.03ms
95th percentile: 21.92ms ± 0.06ms
99th percentile: 23.16ms ± 0.06ms
Max time: 29.42ms ± 5.71ms | | e2e_trip_ch | Ops: 62.83 ± 0.03 ops/s. Best: 62.89 ops/s
Total: 15915.76ms ± 8.79ms. Best: 15902.04ms
Min time: 2.37ms ± 0.14ms
Mean time: 15.92ms ± 0.01ms
Median time: 15.17ms ± 0.03ms
95th percentile: 28.10ms ± 0.06ms
99th percentile: 30.20ms ± 0.12ms
Max time: 32.65ms ± 1.32ms | Ops: 62.65 ± 0.03 ops/s. Best: 62.71 ops/s
Total: 15961.06ms ± 7.82ms. Best: 15947.35ms
Min time: 2.41ms ± 0.13ms
Mean time: 15.96ms ± 0.01ms
Median time: 15.19ms ± 0.02ms
95th percentile: 28.13ms ± 0.04ms
99th percentile: 30.33ms ± 0.15ms
Max time: 32.88ms ± 1.33ms | | e2e_trip_mld | Ops: 36.80 ± 0.01 ops/s. Best: 36.82 ops/s
Total: 27172.89ms ± 9.11ms. Best: 27160.67ms
Min time: 2.42ms ± 0.16ms
Mean time: 27.17ms ± 0.01ms
Median time: 26.28ms ± 0.06ms
95th percentile: 44.23ms ± 0.05ms
99th percentile: 46.96ms ± 0.09ms
Max time: 49.28ms ± 0.15ms | Ops: 36.71 ± 0.02 ops/s. Best: 36.74 ops/s
Total: 27240.05ms ± 12.16ms. Best: 27219.95ms
Min time: 2.44ms ± 0.15ms
Mean time: 27.24ms ± 0.01ms
Median time: 26.35ms ± 0.09ms
95th percentile: 44.34ms ± 0.07ms
99th percentile: 46.95ms ± 0.12ms
Max time: 49.49ms ± 0.12ms | | json-render | String: 9.06021ms
Stringstream: 14.5667ms
Vector: 9.52587ms | String: 8.85538ms
Stringstream: 14.7637ms
Vector: 9.42569ms | | match_ch | Default radius:
7.04729ms/req at 82 coordinate
0.0859426ms/coordinate
Radius 10m:
24.9337ms/req at 82 coordinate
0.30407ms/coordinate | Default radius:
7.09777ms/req at 82 coordinate
0.0865582ms/coordinate
Radius 10m:
25.1335ms/req at 82 coordinate
0.306507ms/coordinate | | match_mld | Default radius:
4.36092ms/req at 82 coordinate
0.053182ms/coordinate
Radius 10m:
16.2441ms/req at 82 coordinate
0.198099ms/coordinate | Default radius:
4.3623ms/req at 82 coordinate
0.0531988ms/coordinate
Radius 10m:
16.1758ms/req at 82 coordinate
0.197266ms/coordinate | | node_match_ch | Ops: 157.7 ± 0.2 ops/s. Best: 158.1 ops/s | Ops: 155.6 ± 0.9 ops/s. Best: 156.9 ops/s | | node_match_mld | Ops: 220.0 ± 1.5 ops/s. Best: 222.4 ops/s | Ops: 220.0 ± 1.0 ops/s. Best: 221.7 ops/s | | node_nearest_ch | Ops: 9768.8 ± 708.7 ops/s. Best: 11316.2 ops/s | Ops: 9435.2 ± 908.5 ops/s. Best: 10491.2 ops/s | | node_nearest_mld | Ops: 9930.3 ± 440.6 ops/s. Best: 10713.6 ops/s | Ops: 9482.5 ± 945.3 ops/s. Best: 11274.5 ops/s | | node_route_ch | Ops: 989.5 ± 17.0 ops/s. Best: 1019.5 ops/s | Ops: 982.1 ± 21.5 ops/s. Best: 1013.4 ops/s | | node_route_mld | Ops: 505.9 ± 4.9 ops/s. Best: 513.2 ops/s | Ops: 504.7 ± 6.8 ops/s. Best: 514.3 ops/s | | node_table_ch | Ops: 184.0 ± 2.1 ops/s. Best: 186.8 ops/s | Ops: 183.7 ± 2.0 ops/s. Best: 186.0 ops/s | | node_table_mld | Ops: 37.9 ± 0.1 ops/s. Best: 38.0 ops/s | Ops: 37.9 ± 0.0 ops/s. Best: 37.9 ops/s | | node_trip_ch | Ops: 184.2 ± 0.5 ops/s. Best: 184.7 ops/s | Ops: 184.0 ± 0.8 ops/s. Best: 185.3 ops/s | | node_trip_mld | Ops: 61.5 ± 0.1 ops/s. Best: 61.6 ops/s | Ops: 61.4 ± 0.2 ops/s. Best: 61.8 ops/s | | osrm_contract | Time: 185.57s Peak RAM: 194.39MB | Time: 185.65s Peak RAM: 193.35MB | | osrm_customize | Time: 2.54s Peak RAM: 112.12MB | Time: 2.52s Peak RAM: 112.12MB | | osrm_extract | Time: 24.50s Peak RAM: 399.35MB | Time: 24.32s Peak RAM: 397.39MB | | osrm_partition | Time: 5.90s Peak RAM: 121.60MB | Time: 5.89s Peak RAM: 121.53MB | | packedvector | random write:
std::vector 184192 ms
util::packed_vector 373516 ms
slowdown: 2.02786
random read:
std::vector 100555 ms
util::packed_vector 190534 ms
slowdown: 1.89482 | random write:
std::vector 180254 ms
util::packed_vector 371602 ms
slowdown: 2.06154
random read:
std::vector 99712.3 ms
util::packed_vector 189411 ms
slowdown: 1.89958 | | random_match_ch | 500 matches, default radius
ops: 116.85 ± 0.24 ops/s. best: 117.15ops/s.
total: 487.80 ± 1.04ms. best: 486.54ms.
avg: 8.56 ± 0.02ms
min: 0.24 ± 0.00ms
max: 41.97 ± 0.13ms
p99: 41.97 ± 0.13ms

500 matches, radius=10
ops: 33.96 ± 0.04 ops/s. best: 34.02ops/s.
total: 1884.51 ± 2.24ms. best: 1881.01ms.
avg: 29.45 ± 0.04ms
min: 0.23 ± 0.00ms
max: 403.49 ± 0.83ms
p99: 403.49 ± 0.83ms

500 matches, radius=20
ops: 7.98 ± 0.01 ops/s. best: 8.00ops/s.
total: 8141.58 ± 12.51ms. best: 8124.77ms.
avg: 125.26 ± 0.19ms
min: 0.48 ± 0.01ms
max: 2117.25 ± 9.16ms
p99: 2117.25 ± 9.16ms

Peak RAM: 55.500MB | 500 matches, default radius
ops: 116.92 ± 0.23 ops/s. best: 117.22ops/s.
total: 487.51 ± 1.08ms. best: 486.28ms.
avg: 8.55 ± 0.02ms
min: 0.23 ± 0.00ms
max: 42.00 ± 0.15ms
p99: 42.00 ± 0.15ms

500 matches, radius=10
ops: 33.91 ± 0.04 ops/s. best: 33.97ops/s.
total: 1887.19 ± 2.38ms. best: 1883.85ms.
avg: 29.49 ± 0.04ms
min: 0.23 ± 0.00ms
max: 404.64 ± 0.92ms
p99: 404.64 ± 0.92ms

500 matches, radius=20
ops: 7.97 ± 0.01 ops/s. best: 7.99ops/s.
total: 8156.47 ± 12.92ms. best: 8138.87ms.
avg: 125.48 ± 0.20ms
min: 0.48 ± 0.00ms
max: 2126.12 ± 9.47ms
p99: 2126.12 ± 9.47ms

Peak RAM: 55.500MB | | random_match_mld | 500 matches, default radius
ops: 205.05 ± 0.45 ops/s. best: 205.53ops/s.
total: 277.98 ± 0.61ms. best: 277.33ms.
avg: 4.88 ± 0.01ms
min: 0.21 ± 0.00ms
max: 27.10 ± 0.05ms
p99: 27.10 ± 0.05ms

500 matches, radius=10
ops: 72.91 ± 0.07 ops/s. best: 73.05ops/s.
total: 877.78 ± 0.80ms. best: 876.11ms.
avg: 13.72 ± 0.01ms
min: 0.22 ± 0.00ms
max: 162.03 ± 0.14ms
p99: 162.03 ± 0.14ms

500 matches, radius=20
ops: 15.34 ± 0.01 ops/s. best: 15.36ops/s.
total: 4237.49 ± 2.77ms. best: 4231.75ms.
avg: 65.19 ± 0.04ms
min: 0.29 ± 0.00ms
max: 842.82 ± 1.91ms
p99: 842.82 ± 1.91ms

Peak RAM: 51.500MB | 500 matches, default radius
ops: 204.84 ± 0.44 ops/s. best: 205.37ops/s.
total: 278.27 ± 0.61ms. best: 277.55ms.
avg: 4.88 ± 0.01ms
min: 0.21 ± 0.01ms
max: 27.13 ± 0.03ms
p99: 27.13 ± 0.03ms

500 matches, radius=10
ops: 72.82 ± 0.07 ops/s. best: 72.97ops/s.
total: 878.85 ± 0.80ms. best: 877.11ms.
avg: 13.73 ± 0.01ms
min: 0.22 ± 0.00ms
max: 162.04 ± 0.18ms
p99: 162.04 ± 0.18ms

500 matches, radius=20
ops: 15.32 ± 0.01 ops/s. best: 15.34ops/s.
total: 4243.67 ± 3.44ms. best: 4236.39ms.
avg: 65.29 ± 0.05ms
min: 0.30 ± 0.00ms
max: 843.19 ± 2.10ms
p99: 843.19 ± 2.10ms

Peak RAM: 51.500MB | | random_nearest_ch | 10000 nearest, number_of_results=1
ops: 21537.74 ± 37.93 ops/s. best: 21570.44ops/s.
total: 464.30 ± 0.82ms. best: 463.60ms.
avg: 0.05 ± 0.00ms
min: 0.01 ± 0.00ms
max: 0.15 ± 0.01ms
p99: 0.10 ± 0.00ms

10000 nearest, number_of_results=5
ops: 15553.23 ± 5.23 ops/s. best: 15559.63ops/s.
total: 642.95 ± 0.22ms. best: 642.69ms.
avg: 0.06 ± 0.00ms
min: 0.03 ± 0.00ms
max: 0.16 ± 0.00ms
p99: 0.13 ± 0.00ms

10000 nearest, number_of_results=10
ops: 11825.33 ± 2.61 ops/s. best: 11829.63ops/s.
total: 845.64 ± 0.19ms. best: 845.34ms.
avg: 0.08 ± 0.00ms
min: 0.04 ± 0.00ms
max: 0.20 ± 0.00ms
p99: 0.15 ± 0.00ms

Peak RAM: 35.000MB | 10000 nearest, number_of_results=1
ops: 21496.75 ± 40.73 ops/s. best: 21529.79ops/s.
total: 465.19 ± 0.88ms. best: 464.47ms.
avg: 0.05 ± 0.00ms
min: 0.01 ± 0.00ms
max: 0.15 ± 0.01ms
p99: 0.10 ± 0.00ms

10000 nearest, number_of_results=5
ops: 15552.88 ± 15.20 ops/s. best: 15567.03ops/s.
total: 642.97 ± 0.63ms. best: 642.38ms.
avg: 0.06 ± 0.00ms
min: 0.03 ± 0.00ms
max: 0.17 ± 0.00ms
p99: 0.13 ± 0.00ms

10000 nearest, number_of_results=10
ops: 11853.70 ± 3.06 ops/s. best: 11858.69ops/s.
total: 843.62 ± 0.22ms. best: 843.26ms.
avg: 0.08 ± 0.00ms
min: 0.04 ± 0.00ms
max: 0.20 ± 0.00ms
p99: 0.15 ± 0.00ms

Peak RAM: 35.000MB | | random_nearest_mld | 10000 nearest, number_of_results=1
ops: 21526.07 ± 35.93 ops/s. best: 21553.93ops/s.
total: 464.56 ± 0.78ms. best: 463.95ms.
avg: 0.05 ± 0.00ms
min: 0.01 ± 0.00ms
max: 0.15 ± 0.01ms
p99: 0.10 ± 0.00ms

10000 nearest, number_of_results=5
ops: 15548.16 ± 5.23 ops/s. best: 15557.85ops/s.
total: 643.16 ± 0.22ms. best: 642.76ms.
avg: 0.06 ± 0.00ms
min: 0.03 ± 0.00ms
max: 0.17 ± 0.00ms
p99: 0.13 ± 0.00ms

10000 nearest, number_of_results=10
ops: 11820.13 ± 4.86 ops/s. best: 11827.64ops/s.
total: 846.01 ± 0.35ms. best: 845.48ms.
avg: 0.08 ± 0.00ms
min: 0.04 ± 0.00ms
max: 0.20 ± 0.00ms
p99: 0.15 ± 0.00ms

Peak RAM: 35.000MB | 10000 nearest, number_of_results=1
ops: 21494.65 ± 40.42 ops/s. best: 21525.36ops/s.
total: 465.23 ± 0.88ms. best: 464.57ms.
avg: 0.05 ± 0.00ms
min: 0.01 ± 0.00ms
max: 0.15 ± 0.01ms
p99: 0.10 ± 0.00ms

10000 nearest, number_of_results=5
ops: 15530.92 ± 15.53 ops/s. best: 15547.32ops/s.
total: 643.88 ± 0.64ms. best: 643.20ms.
avg: 0.06 ± 0.00ms
min: 0.03 ± 0.00ms
max: 0.17 ± 0.00ms
p99: 0.13 ± 0.00ms

10000 nearest, number_of_results=10
ops: 11849.92 ± 4.89 ops/s. best: 11855.65ops/s.
total: 843.89 ± 0.35ms. best: 843.48ms.
avg: 0.08 ± 0.00ms
min: 0.04 ± 0.00ms
max: 0.20 ± 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.64 ± 0.13 ops/s. best: 284.83ops/s.
total: 3456.98 ± 1.56ms. best: 3454.72ms.
avg: 3.51 ± 0.00ms
min: 0.51 ± 0.01ms
max: 5.99 ± 0.01ms
p99: 5.23 ± 0.02ms

1000 routes, 2 coordinates, 3 alternatives, overview=full, steps=true
ops: 324.07 ± 0.02 ops/s. best: 324.10ops/s.
total: 3085.77 ± 0.20ms. best: 3085.47ms.
avg: 3.09 ± 0.00ms
min: 0.08 ± 0.00ms
max: 7.95 ± 0.04ms
p99: 7.19 ± 0.01ms

1000 routes, 3 coordinates, no alternatives, overview=false, steps=false
ops: 590.42 ± 0.14 ops/s. best: 590.69ops/s.
total: 1666.62 ± 0.40ms. best: 1665.86ms.
avg: 1.69 ± 0.00ms
min: 0.37 ± 0.00ms
max: 2.79 ± 0.01ms
p99: 2.37 ± 0.01ms

1000 routes, 2 coordinates, 3 alternatives, overview=false, steps=false
ops: 636.15 ± 0.38 ops/s. best: 636.60ops/s.
total: 1571.97 ± 0.93ms. best: 1570.86ms.
avg: 1.57 ± 0.00ms
min: 0.06 ± 0.00ms
max: 4.23 ± 0.01ms
p99: 4.07 ± 0.00ms

Peak RAM: 84.000MB | 1000 routes, 3 coordinates, no alternatives, overview=full, steps=true
ops: 285.82 ± 0.15 ops/s. best: 286.05ops/s.
total: 3442.75 ± 1.86ms. best: 3439.99ms.
avg: 3.50 ± 0.00ms
min: 0.51 ± 0.00ms
max: 5.97 ± 0.02ms
p99: 5.20 ± 0.01ms

1000 routes, 2 coordinates, 3 alternatives, overview=full, steps=true
ops: 324.92 ± 0.10 ops/s. best: 325.10ops/s.
total: 3077.64 ± 0.96ms. best: 3075.98ms.
avg: 3.08 ± 0.00ms
min: 0.08 ± 0.00ms
max: 7.92 ± 0.04ms
p99: 7.15 ± 0.01ms

1000 routes, 3 coordinates, no alternatives, overview=false, steps=false
ops: 592.17 ± 0.21 ops/s. best: 592.67ops/s.
total: 1661.70 ± 0.58ms. best: 1660.29ms.
avg: 1.69 ± 0.00ms
min: 0.36 ± 0.00ms
max: 2.77 ± 0.01ms
p99: 2.36 ± 0.00ms

1000 routes, 2 coordinates, 3 alternatives, overview=false, steps=false
ops: 636.30 ± 0.11 ops/s. best: 636.45ops/s.
total: 1571.59 ± 0.26ms. best: 1571.23ms.
avg: 1.57 ± 0.00ms
min: 0.06 ± 0.00ms
max: 4.22 ± 0.01ms
p99: 4.06 ± 0.01ms

Peak RAM: 84.000MB | | random_route_mld | 1000 routes, 3 coordinates, no alternatives, overview=full, steps=true
ops: 146.52 ± 0.03 ops/s. best: 146.57ops/s.
total: 6715.80 ± 1.43ms. best: 6713.62ms.
avg: 6.83 ± 0.00ms
min: 0.51 ± 0.00ms
max: 16.52 ± 0.03ms
p99: 11.03 ± 0.01ms

1000 routes, 2 coordinates, 3 alternatives, overview=full, steps=true
ops: 139.86 ± 0.01 ops/s. best: 139.88ops/s.
total: 7150.18 ± 0.77ms. best: 7148.77ms.
avg: 7.15 ± 0.00ms
min: 0.07 ± 0.00ms
max: 16.38 ± 0.01ms
p99: 15.44 ± 0.04ms

1000 routes, 3 coordinates, no alternatives, overview=false, steps=false
ops: 203.86 ± 0.02 ops/s. best: 203.89ops/s.
total: 4826.83 ± 0.46ms. best: 4826.16ms.
avg: 4.91 ± 0.00ms
min: 0.37 ± 0.00ms
max: 13.74 ± 0.02ms
p99: 8.45 ± 0.01ms

1000 routes, 2 coordinates, 3 alternatives, overview=false, steps=false
ops: 176.10 ± 0.02 ops/s. best: 176.13ops/s.
total: 5678.48 ± 0.50ms. best: 5677.56ms.
avg: 5.68 ± 0.00ms
min: 0.05 ± 0.00ms
max: 12.76 ± 0.03ms
p99: 11.86 ± 0.01ms

Peak RAM: 73.672MB | 1000 routes, 3 coordinates, no alternatives, overview=full, steps=true
ops: 147.25 ± 0.03 ops/s. best: 147.30ops/s.
total: 6682.40 ± 1.26ms. best: 6680.17ms.
avg: 6.79 ± 0.00ms
min: 0.51 ± 0.00ms
max: 16.43 ± 0.03ms
p99: 10.99 ± 0.01ms

1000 routes, 2 coordinates, 3 alternatives, overview=full, steps=true
ops: 140.29 ± 0.02 ops/s. best: 140.33ops/s.
total: 7128.24 ± 0.92ms. best: 7126.20ms.
avg: 7.13 ± 0.00ms
min: 0.07 ± 0.00ms
max: 16.38 ± 0.02ms
p99: 15.42 ± 0.04ms

1000 routes, 3 coordinates, no alternatives, overview=false, steps=false
ops: 204.41 ± 0.07 ops/s. best: 204.51ops/s.
total: 4813.89 ± 1.61ms. best: 4811.41ms.
avg: 4.89 ± 0.00ms
min: 0.37 ± 0.00ms
max: 13.70 ± 0.01ms
p99: 8.42 ± 0.01ms

1000 routes, 2 coordinates, 3 alternatives, overview=false, steps=false
ops: 176.54 ± 0.03 ops/s. best: 176.58ops/s.
total: 5664.52 ± 0.83ms. best: 5663.19ms.
avg: 5.66 ± 0.00ms
min: 0.06 ± 0.00ms
max: 12.72 ± 0.02ms
p99: 11.84 ± 0.02ms

Peak RAM: 73.672MB | | random_table_ch | 250 tables, 3 coordinates
ops: 1133.23 ± 4.66 ops/s. best: 1137.13ops/s.
total: 220.61 ± 0.92ms. best: 219.85ms.
avg: 0.88 ± 0.00ms
min: 0.70 ± 0.00ms
max: 1.21 ± 0.12ms
p99: 1.07 ± 0.00ms

250 tables, 25 coordinates
ops: 126.35 ± 0.04 ops/s. best: 126.41ops/s.
total: 1978.55 ± 0.64ms. best: 1977.73ms.
avg: 7.91 ± 0.00ms
min: 7.32 ± 0.01ms
max: 8.48 ± 0.00ms
p99: 8.43 ± 0.01ms

250 tables, 50 coordinates
ops: 61.52 ± 0.01 ops/s. best: 61.53ops/s.
total: 4064.03 ± 0.79ms. best: 4062.75ms.
avg: 16.26 ± 0.00ms
min: 15.25 ± 0.01ms
max: 17.10 ± 0.02ms
p99: 16.94 ± 0.04ms

Peak RAM: 63.000MB | 250 tables, 3 coordinates
ops: 1128.70 ± 4.32 ops/s. best: 1132.22ops/s.
total: 221.50 ± 0.85ms. best: 220.80ms.
avg: 0.89 ± 0.00ms
min: 0.70 ± 0.00ms
max: 1.22 ± 0.12ms
p99: 1.07 ± 0.01ms

250 tables, 25 coordinates
ops: 126.28 ± 0.03 ops/s. best: 126.32ops/s.
total: 1979.71 ± 0.54ms. best: 1979.13ms.
avg: 7.92 ± 0.00ms
min: 7.32 ± 0.01ms
max: 8.48 ± 0.01ms
p99: 8.44 ± 0.00ms

250 tables, 50 coordinates
ops: 61.39 ± 0.01 ops/s. best: 61.40ops/s.
total: 4072.21 ± 0.73ms. best: 4071.39ms.
avg: 16.29 ± 0.00ms
min: 15.27 ± 0.02ms
max: 17.14 ± 0.02ms
p99: 16.99 ± 0.01ms

Peak RAM: 63.000MB | | random_table_mld | 250 tables, 3 coordinates
ops: 226.99 ± 0.26 ops/s. best: 227.19ops/s.
total: 1101.37 ± 1.28ms. best: 1100.38ms.
avg: 4.41 ± 0.01ms
min: 3.51 ± 0.00ms
max: 5.61 ± 0.01ms
p99: 5.48 ± 0.04ms

250 tables, 25 coordinates
ops: 23.84 ± 0.02 ops/s. best: 23.86ops/s.
total: 10486.50 ± 6.85ms. best: 10475.66ms.
avg: 41.95 ± 0.03ms
min: 38.84 ± 0.02ms
max: 45.67 ± 0.06ms
p99: 45.21 ± 0.21ms

250 tables, 50 coordinates
ops: 11.01 ± 0.00 ops/s. best: 11.02ops/s.
total: 22696.86 ± 4.69ms. best: 22689.45ms.
avg: 90.79 ± 0.02ms
min: 86.42 ± 0.10ms
max: 96.66 ± 0.11ms
p99: 94.86 ± 0.08ms

Peak RAM: 62.688MB | 250 tables, 3 coordinates
ops: 228.29 ± 0.48 ops/s. best: 228.69ops/s.
total: 1095.13 ± 2.31ms. best: 1093.20ms.
avg: 4.38 ± 0.01ms
min: 3.49 ± 0.00ms
max: 5.62 ± 0.01ms
p99: 5.46 ± 0.05ms

250 tables, 25 coordinates
ops: 23.93 ± 0.01 ops/s. best: 23.94ops/s.
total: 10447.70 ± 3.18ms. best: 10442.41ms.
avg: 41.79 ± 0.01ms
min: 38.62 ± 0.02ms
max: 45.51 ± 0.02ms
p99: 44.93 ± 0.04ms

250 tables, 50 coordinates
ops: 11.06 ± 0.01 ops/s. best: 11.07ops/s.
total: 22604.23 ± 14.86ms. best: 22590.17ms.
avg: 90.42 ± 0.06ms
min: 86.13 ± 0.19ms
max: 96.22 ± 0.13ms
p99: 94.57 ± 0.23ms

Peak RAM: 62.688MB | | random_trip_ch | 250 trips, 3 coordinates
ops: 327.09 ± 0.49 ops/s. best: 327.49ops/s.
total: 764.32 ± 1.15ms. best: 763.38ms.
avg: 3.06 ± 0.00ms
min: 1.65 ± 0.01ms
max: 4.43 ± 0.01ms
p99: 4.16 ± 0.01ms

250 trips, 5 coordinates
ops: 211.46 ± 0.10 ops/s. best: 211.61ops/s.
total: 1182.27 ± 0.57ms. best: 1181.44ms.
avg: 4.73 ± 0.00ms
min: 3.00 ± 0.01ms
max: 5.99 ± 0.00ms
p99: 5.85 ± 0.01ms

Peak RAM: 73.500MB | 250 trips, 3 coordinates
ops: 327.37 ± 0.46 ops/s. best: 327.74ops/s.
total: 763.67 ± 1.07ms. best: 762.80ms.
avg: 3.05 ± 0.00ms
min: 1.65 ± 0.01ms
max: 4.40 ± 0.01ms
p99: 4.15 ± 0.01ms

250 trips, 5 coordinates
ops: 211.45 ± 0.05 ops/s. best: 211.52ops/s.
total: 1182.29 ± 0.25ms. best: 1181.92ms.
avg: 4.73 ± 0.00ms
min: 3.02 ± 0.00ms
max: 5.99 ± 0.01ms
p99: 5.84 ± 0.02ms

Peak RAM: 73.500MB | | random_trip_mld | 250 trips, 3 coordinates
ops: 106.90 ± 0.07 ops/s. best: 106.96ops/s.
total: 2338.74 ± 1.50ms. best: 2337.35ms.
avg: 9.35 ± 0.01ms
min: 5.50 ± 0.01ms
max: 12.13 ± 0.00ms
p99: 12.05 ± 0.01ms

250 trips, 5 coordinates
ops: 68.84 ± 0.01 ops/s. best: 68.85ops/s.
total: 3631.85 ± 0.36ms. best: 3631.22ms.
avg: 14.53 ± 0.00ms
min: 10.15 ± 0.02ms
max: 17.90 ± 0.03ms
p99: 17.34 ± 0.02ms

Peak RAM: 69.500MB | 250 trips, 3 coordinates
ops: 105.90 ± 0.18 ops/s. best: 106.15ops/s.
total: 2360.75 ± 4.40ms. best: 2355.24ms.
avg: 9.44 ± 0.02ms
min: 5.51 ± 0.05ms
max: 12.28 ± 0.02ms
p99: 12.19 ± 0.08ms

250 trips, 5 coordinates
ops: 68.50 ± 0.16 ops/s. best: 68.81ops/s.
total: 3649.59 ± 8.76ms. best: 3633.13ms.
avg: 14.60 ± 0.04ms
min: 10.12 ± 0.04ms
max: 17.99 ± 0.09ms
p99: 17.42 ± 0.08ms

Peak RAM: 69.500MB | | route_ch | 1000 routes, 3 coordinates, no alternatives, overview=full, steps=true
638.725ms
0.638725ms/req
1000 routes, 2 coordinates, 3 alternatives, overview=full, steps=true
781.088ms
0.781088ms/req
1000 routes, 3 coordinates, no alternatives, overview=false, steps=false
245.492ms
0.245492ms/req
1000 routes, 2 coordinates, 3 alternatives, overview=false, steps=false
215.578ms
0.215578ms/req | 1000 routes, 3 coordinates, no alternatives, overview=full, steps=true
634.827ms
0.634827ms/req
1000 routes, 2 coordinates, 3 alternatives, overview=full, steps=true
775.25ms
0.77525ms/req
1000 routes, 3 coordinates, no alternatives, overview=false, steps=false
245.389ms
0.245389ms/req
1000 routes, 2 coordinates, 3 alternatives, overview=false, steps=false
215.909ms
0.215909ms/req | | route_mld | 1000 routes, 3 coordinates, no alternatives, overview=full, steps=true
808.176ms
0.808176ms/req
1000 routes, 2 coordinates, 3 alternatives, overview=full, steps=true
1038.55ms
1.03855ms/req
1000 routes, 3 coordinates, no alternatives, overview=false, steps=false
414.196ms
0.414196ms/req
1000 routes, 2 coordinates, 3 alternatives, overview=false, steps=false
461.002ms
0.461002ms/req | 1000 routes, 3 coordinates, no alternatives, overview=full, steps=true
804.082ms
0.804082ms/req
1000 routes, 2 coordinates, 3 alternatives, overview=full, steps=true
1034ms
1.034ms/req
1000 routes, 3 coordinates, no alternatives, overview=false, steps=false
413.368ms
0.413368ms/req
1000 routes, 2 coordinates, 3 alternatives, overview=false, steps=false
460.797ms
0.460797ms/req | | rtree | 1 result:
227.414ms -> 0.0227414 ms/query
10 results:
258.191ms -> 0.0258191 ms/query | 1 result:
227.172ms -> 0.0227172 ms/query
10 results:
257.896ms -> 0.0257896 ms/query |
SiarheiFedartsou commented 1 day ago

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