Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add NodeJs bindings benchmarks #7004

Merged
merged 20 commits into from
Jul 26, 2024
Merged

Add NodeJs bindings benchmarks #7004

merged 20 commits into from
Jul 26, 2024

Conversation

SiarheiFedartsou
Copy link
Member

@SiarheiFedartsou SiarheiFedartsou commented Jul 17, 2024

I am going to try to add a couple of performance optimisation in NodeJs bindings, so it would be really useful.

Benchmark Results

Benchmark Base PR
alias aliased u32: 1149.31
plain u32: 1149.65
aliased double: 1179.27
plain double: 1190.37
aliased u32: 1163.21
plain u32: 1166.87
aliased double: 1203.11
plain double: 1211.36
e2e_match_ch Ops: 42.66 ± 0.25 ops/s. Best: 42.92 ops/s
Total: 3071.30ms ± 18.80ms. Best: 3052.09ms
Min time: 2.09ms ± 0.02ms
Mean time: 23.44ms ± 0.15ms
Median time: 15.89ms ± 0.13ms
95th percentile: 80.46ms ± 0.96ms
99th percentile: 97.67ms ± 0.33ms
Max time: 102.14ms ± 0.57ms
Ops: 43.68 ± 0.06 ops/s. Best: 43.77 ops/s
Total: 2999.34ms ± 4.33ms. Best: 2993.06ms
Min time: 2.07ms ± 0.03ms
Mean time: 22.90ms ± 0.03ms
Median time: 15.77ms ± 0.08ms
95th percentile: 75.73ms ± 0.23ms
99th percentile: 91.39ms ± 0.23ms
Max time: 100.04ms ± 0.33ms
e2e_match_mld Ops: 62.37 ± 0.14 ops/s. Best: 62.65 ops/s
Total: 2100.58ms ± 4.83ms. Best: 2090.95ms
Min time: 1.82ms ± 0.02ms
Mean time: 16.03ms ± 0.04ms
Median time: 8.41ms ± 0.14ms
95th percentile: 52.72ms ± 0.30ms
99th percentile: 60.94ms ± 0.22ms
Max time: 69.78ms ± 0.35ms
Ops: 61.85 ± 0.22 ops/s. Best: 62.22 ops/s
Total: 2118.16ms ± 7.95ms. Best: 2105.57ms
Min time: 1.80ms ± 0.02ms
Mean time: 16.17ms ± 0.06ms
Median time: 8.41ms ± 0.11ms
95th percentile: 54.18ms ± 1.11ms
99th percentile: 63.53ms ± 1.24ms
Max time: 70.32ms ± 1.84ms
e2e_nearest_ch Ops: 867.25 ± 5.37 ops/s. Best: 874.27 ops/s
Total: 1152.97ms ± 7.36ms. Best: 1143.82ms
Min time: 0.98ms ± 0.01ms
Mean time: 1.15ms ± 0.01ms
Median time: 1.06ms ± 0.00ms
95th percentile: 1.60ms ± 0.01ms
99th percentile: 1.65ms ± 0.01ms
Max time: 6.74ms ± 3.61ms
Ops: 866.78 ± 3.63 ops/s. Best: 873.80 ops/s
Total: 1153.69ms ± 5.17ms. Best: 1144.43ms
Min time: 0.98ms ± 0.00ms
Mean time: 1.15ms ± 0.01ms
Median time: 1.07ms ± 0.00ms
95th percentile: 1.60ms ± 0.01ms
99th percentile: 1.65ms ± 0.01ms
Max time: 5.74ms ± 2.64ms
e2e_nearest_mld Ops: 865.66 ± 3.58 ops/s. Best: 871.46 ops/s
Total: 1155.23ms ± 5.30ms. Best: 1147.50ms
Min time: 0.98ms ± 0.01ms
Mean time: 1.16ms ± 0.01ms
Median time: 1.07ms ± 0.00ms
95th percentile: 1.60ms ± 0.01ms
99th percentile: 1.66ms ± 0.01ms
Max time: 5.86ms ± 2.71ms
Ops: 860.53 ± 11.68 ops/s. Best: 872.55 ops/s
Total: 1162.62ms ± 16.10ms. Best: 1146.07ms
Min time: 0.98ms ± 0.01ms
Mean time: 1.16ms ± 0.02ms
Median time: 1.07ms ± 0.01ms
95th percentile: 1.61ms ± 0.02ms
99th percentile: 1.69ms ± 0.05ms
Max time: 5.84ms ± 2.63ms
e2e_route_ch Ops: 373.30 ± 1.42 ops/s. Best: 376.39 ops/s
Total: 2679.03ms ± 10.66ms. Best: 2656.80ms
Min time: 1.19ms ± 0.01ms
Mean time: 2.68ms ± 0.01ms
Median time: 2.69ms ± 0.00ms
95th percentile: 3.52ms ± 0.02ms
99th percentile: 3.95ms ± 0.03ms
Max time: 6.74ms ± 2.39ms
Ops: 363.46 ± 5.07 ops/s. Best: 369.96 ops/s
Total: 2753.04ms ± 40.13ms. Best: 2702.97ms
Min time: 1.20ms ± 0.01ms
Mean time: 2.75ms ± 0.04ms
Median time: 2.77ms ± 0.04ms
95th percentile: 3.65ms ± 0.07ms
99th percentile: 4.06ms ± 0.07ms
Max time: 6.78ms ± 2.27ms
e2e_route_mld Ops: 307.67 ± 3.26 ops/s. Best: 310.63 ops/s
Total: 3250.92ms ± 34.79ms. Best: 3219.27ms
Min time: 1.19ms ± 0.01ms
Mean time: 3.25ms ± 0.03ms
Median time: 3.30ms ± 0.04ms
95th percentile: 4.45ms ± 0.06ms
99th percentile: 4.94ms ± 0.07ms
Max time: 7.72ms ± 2.16ms
Ops: 309.41 ± 1.65 ops/s. Best: 312.60 ops/s
Total: 3231.67ms ± 18.50ms. Best: 3198.93ms
Min time: 1.17ms ± 0.01ms
Mean time: 3.23ms ± 0.02ms
Median time: 3.27ms ± 0.01ms
95th percentile: 4.41ms ± 0.04ms
99th percentile: 4.91ms ± 0.06ms
Max time: 7.36ms ± 2.03ms
e2e_table_ch Ops: 317.49 ± 0.61 ops/s. Best: 318.20 ops/s
Total: 3149.66ms ± 6.65ms. Best: 3142.64ms
Min time: 1.63ms ± 0.02ms
Mean time: 3.15ms ± 0.01ms
Median time: 3.15ms ± 0.01ms
95th percentile: 4.37ms ± 0.03ms
99th percentile: 4.72ms ± 0.04ms
Max time: 8.18ms ± 2.21ms
Ops: 315.22 ± 0.58 ops/s. Best: 316.02 ops/s
Total: 3172.27ms ± 5.87ms. Best: 3164.36ms
Min time: 1.64ms ± 0.03ms
Mean time: 3.17ms ± 0.01ms
Median time: 3.17ms ± 0.01ms
95th percentile: 4.40ms ± 0.03ms
99th percentile: 4.73ms ± 0.06ms
Max time: 8.30ms ± 2.46ms
e2e_table_mld Ops: 108.90 ± 0.62 ops/s. Best: 109.61 ops/s
Total: 9182.47ms ± 53.11ms. Best: 9123.65ms
Min time: 3.67ms ± 0.09ms
Mean time: 9.18ms ± 0.05ms
Median time: 9.14ms ± 0.07ms
95th percentile: 14.08ms ± 0.07ms
99th percentile: 14.79ms ± 0.09ms
Max time: 17.36ms ± 2.31ms
Ops: 109.90 ± 0.45 ops/s. Best: 110.49 ops/s
Total: 9097.98ms ± 37.00ms. Best: 9050.91ms
Min time: 3.68ms ± 0.06ms
Mean time: 9.10ms ± 0.04ms
Median time: 9.06ms ± 0.08ms
95th percentile: 13.93ms ± 0.06ms
99th percentile: 14.62ms ± 0.07ms
Max time: 17.42ms ± 2.32ms
e2e_trip_ch Ops: 96.84 ± 0.93 ops/s. Best: 98.83 ops/s
Total: 10327.68ms ± 101.91ms. Best: 10118.12ms
Min time: 1.55ms ± 0.03ms
Mean time: 10.33ms ± 0.10ms
Median time: 9.79ms ± 0.11ms
95th percentile: 18.51ms ± 0.14ms
99th percentile: 20.57ms ± 0.31ms
Max time: 22.36ms ± 0.55ms
Ops: 100.58 ± 0.41 ops/s. Best: 101.10 ops/s
Total: 9940.82ms ± 41.07ms. Best: 9891.51ms
Min time: 1.43ms ± 0.12ms
Mean time: 9.94ms ± 0.04ms
Median time: 9.39ms ± 0.07ms
95th percentile: 17.97ms ± 0.10ms
99th percentile: 19.83ms ± 0.13ms
Max time: 22.31ms ± 1.11ms
e2e_trip_mld Ops: 59.26 ± 0.40 ops/s. Best: 59.69 ops/s
Total: 16876.46ms ± 117.90ms. Best: 16752.12ms
Min time: 1.64ms ± 0.28ms
Mean time: 16.87ms ± 0.12ms
Median time: 16.38ms ± 0.16ms
95th percentile: 27.74ms ± 0.13ms
99th percentile: 30.00ms ± 0.34ms
Max time: 31.87ms ± 0.20ms
Ops: 58.83 ± 0.38 ops/s. Best: 59.30 ops/s
Total: 17000.78ms ± 110.64ms. Best: 16864.57ms
Min time: 1.58ms ± 0.24ms
Mean time: 17.00ms ± 0.12ms
Median time: 16.49ms ± 0.11ms
95th percentile: 27.98ms ± 0.16ms
99th percentile: 30.27ms ± 0.09ms
Max time: 32.41ms ± 0.59ms
json-render String: 5.43145ms
Stringstream: 8.84586ms
Vector: 6.47058ms
String: 5.4868ms
Stringstream: 9.05192ms
Vector: 6.52944ms
match_ch Default radius:
4.61265ms/req at 82 coordinate
0.0562519ms/coordinate
Radius 10m:
16.1109ms/req at 82 coordinate
0.196475ms/coordinate
Default radius:
4.62303ms/req at 82 coordinate
0.0563784ms/coordinate
Radius 10m:
16.1028ms/req at 82 coordinate
0.196376ms/coordinate
match_mld Default radius:
3.14002ms/req at 82 coordinate
0.0382929ms/coordinate
Radius 10m:
11.7684ms/req at 82 coordinate
0.143517ms/coordinate
Default radius:
2.94615ms/req at 82 coordinate
0.0359286ms/coordinate
Radius 10m:
11.124ms/req at 82 coordinate
0.135659ms/coordinate
node_match_ch Ops: 283.8 ± 3.3 ops/s. Best: 286.8 ops/s Ops: 285.7 ± 0.9 ops/s. Best: 286.8 ops/s
node_match_mld Ops: 365.7 ± 2.5 ops/s. Best: 369.0 ops/s Ops: 363.8 ± 2.4 ops/s. Best: 366.8 ops/s
node_nearest_ch Ops: 11653.0 ± 529.9 ops/s. Best: 12688.7 ops/s Ops: 11596.2 ± 664.1 ops/s. Best: 13016.9 ops/s
node_nearest_mld Ops: 12040.3 ± 622.4 ops/s. Best: 13083.6 ops/s Ops: 11900.0 ± 319.0 ops/s. Best: 12298.3 ops/s
node_route_ch Ops: 1619.3 ± 21.1 ops/s. Best: 1667.8 ops/s Ops: 1568.6 ± 28.3 ops/s. Best: 1606.9 ops/s
node_route_mld Ops: 902.6 ± 11.6 ops/s. Best: 926.6 ops/s Ops: 848.9 ± 16.9 ops/s. Best: 878.0 ops/s
node_table_ch Ops: 249.1 ± 0.5 ops/s. Best: 249.7 ops/s Ops: 241.3 ± 0.4 ops/s. Best: 241.7 ops/s
node_table_mld Ops: 58.9 ± 0.6 ops/s. Best: 59.6 ops/s Ops: 58.5 ± 0.1 ops/s. Best: 58.8 ops/s
node_trip_ch Ops: 298.8 ± 1.6 ops/s. Best: 301.1 ops/s Ops: 279.4 ± 2.9 ops/s. Best: 285.2 ops/s
node_trip_mld Ops: 99.8 ± 1.2 ops/s. Best: 101.3 ops/s Ops: 98.1 ± 1.0 ops/s. Best: 99.4 ops/s
osrm_contract Time: 100.34s Peak RAM: 194.83MB Time: 100.97s Peak RAM: 195.90MB
osrm_customize Time: 1.30s Peak RAM: 117.68MB Time: 1.30s Peak RAM: 117.72MB
osrm_extract Time: 11.74s Peak RAM: 425.02MB Time: 11.93s Peak RAM: 429.53MB
osrm_partition Time: 2.11s Peak RAM: 140.69MB Time: 2.19s Peak RAM: 141.07MB
packedvector random write:
std::vector 11238.7 ms
util::packed_vector 74141.4 ms
slowdown: 6.597
random read:
std::vector 11123.5 ms
util::packed_vector 30804.5 ms
slowdown: 2.76932
random write:
std::vector 11583.9 ms
util::packed_vector 74065.6 ms
slowdown: 6.39385
random read:
std::vector 11405.6 ms
util::packed_vector 30940.3 ms
slowdown: 2.71273
random_match_ch 500 matches, default radius
ops: 207.24 ± 0.74 ops/s. best: 208.29ops/s.
total: 275.05 ± 1.06ms. best: 273.65ms.
avg: 4.83 ± 0.02ms
min: 0.13 ± 0.01ms
max: 24.67 ± 0.08ms
p99: 24.67 ± 0.08ms

500 matches, radius=10
ops: 61.39 ± 0.23 ops/s. best: 61.72ops/s.
total: 1042.46 ± 4.05ms. best: 1036.93ms.
avg: 16.29 ± 0.06ms
min: 0.16 ± 0.00ms
max: 234.70 ± 1.56ms
p99: 234.70 ± 1.56ms

500 matches, radius=20
ops: 14.58 ± 0.03 ops/s. best: 14.65ops/s.
total: 4458.65 ± 10.48ms. best: 4437.67ms.
avg: 68.59 ± 0.16ms
min: 0.30 ± 0.00ms
max: 1197.45 ± 4.75ms
p99: 1197.45 ± 4.75ms
500 matches, default radius
ops: 207.70 ± 0.56 ops/s. best: 208.50ops/s.
total: 274.44 ± 0.73ms. best: 273.38ms.
avg: 4.81 ± 0.01ms
min: 0.14 ± 0.01ms
max: 24.92 ± 0.07ms
p99: 24.92 ± 0.07ms

500 matches, radius=10
ops: 60.37 ± 0.05 ops/s. best: 60.45ops/s.
total: 1060.12 ± 0.84ms. best: 1058.80ms.
avg: 16.56 ± 0.01ms
min: 0.16 ± 0.00ms
max: 249.88 ± 0.58ms
p99: 249.88 ± 0.58ms

500 matches, radius=20
ops: 14.21 ± 0.02 ops/s. best: 14.24ops/s.
total: 4575.69 ± 6.04ms. best: 4564.20ms.
avg: 70.40 ± 0.09ms
min: 0.31 ± 0.01ms
max: 1296.05 ± 2.00ms
p99: 1296.05 ± 2.00ms
random_match_mld 500 matches, default radius
ops: 301.76 ± 1.86 ops/s. best: 303.24ops/s.
total: 188.90 ± 1.17ms. best: 187.97ms.
avg: 3.31 ± 0.02ms
min: 0.11 ± 0.01ms
max: 18.93 ± 0.07ms
p99: 18.93 ± 0.07ms

500 matches, radius=10
ops: 106.70 ± 0.12 ops/s. best: 106.87ops/s.
total: 599.83 ± 0.68ms. best: 598.88ms.
avg: 9.37 ± 0.01ms
min: 0.14 ± 0.00ms
max: 110.81 ± 0.32ms
p99: 110.81 ± 0.32ms

500 matches, radius=20
ops: 21.57 ± 0.03 ops/s. best: 21.61ops/s.
total: 3013.26 ± 3.82ms. best: 3007.77ms.
avg: 46.36 ± 0.06ms
min: 0.19 ± 0.01ms
max: 585.72 ± 1.74ms
p99: 585.72 ± 1.74ms
500 matches, default radius
ops: 295.91 ± 1.66 ops/s. best: 297.23ops/s.
total: 192.64 ± 1.09ms. best: 191.77ms.
avg: 3.38 ± 0.02ms
min: 0.12 ± 0.01ms
max: 19.28 ± 0.02ms
p99: 19.28 ± 0.02ms

500 matches, radius=10
ops: 104.73 ± 0.21 ops/s. best: 105.05ops/s.
total: 611.08 ± 1.22ms. best: 609.25ms.
avg: 9.55 ± 0.02ms
min: 0.14 ± 0.00ms
max: 113.73 ± 1.02ms
p99: 113.73 ± 1.02ms

500 matches, radius=20
ops: 21.30 ± 0.04 ops/s. best: 21.35ops/s.
total: 3052.18 ± 6.38ms. best: 3044.12ms.
avg: 46.96 ± 0.10ms
min: 0.19 ± 0.00ms
max: 595.07 ± 1.97ms
p99: 595.07 ± 1.97ms
random_nearest_ch 10000 nearest, number_of_results=1
ops: 22781.17 ± 58.52 ops/s. best: 22848.04ops/s.
total: 438.96 ± 1.13ms. best: 437.67ms.
avg: 0.04 ± 0.00ms
min: 0.01 ± 0.00ms
max: 0.17 ± 0.02ms
p99: 0.12 ± 0.00ms

10000 nearest, number_of_results=5
ops: 17325.42 ± 41.87 ops/s. best: 17365.82ops/s.
total: 577.19 ± 1.40ms. best: 575.84ms.
avg: 0.06 ± 0.00ms
min: 0.02 ± 0.00ms
max: 0.17 ± 0.00ms
p99: 0.13 ± 0.00ms

10000 nearest, number_of_results=10
ops: 13757.00 ± 11.78 ops/s. best: 13771.34ops/s.
total: 726.90 ± 0.62ms. best: 726.15ms.
avg: 0.07 ± 0.00ms
min: 0.03 ± 0.00ms
max: 0.18 ± 0.00ms
p99: 0.14 ± 0.00ms
10000 nearest, number_of_results=1
ops: 23289.57 ± 63.68 ops/s. best: 23367.93ops/s.
total: 429.38 ± 1.18ms. best: 427.94ms.
avg: 0.04 ± 0.00ms
min: 0.01 ± 0.00ms
max: 0.17 ± 0.02ms
p99: 0.11 ± 0.00ms

10000 nearest, number_of_results=5
ops: 17686.30 ± 53.99 ops/s. best: 17810.57ops/s.
total: 565.42 ± 1.72ms. best: 561.46ms.
avg: 0.06 ± 0.00ms
min: 0.02 ± 0.00ms
max: 0.16 ± 0.00ms
p99: 0.12 ± 0.00ms

10000 nearest, number_of_results=10
ops: 13986.89 ± 26.62 ops/s. best: 14042.37ops/s.
total: 714.96 ± 1.32ms. best: 712.13ms.
avg: 0.07 ± 0.00ms
min: 0.03 ± 0.00ms
max: 0.18 ± 0.00ms
p99: 0.14 ± 0.00ms
random_nearest_mld 10000 nearest, number_of_results=1
ops: 23550.63 ± 60.36 ops/s. best: 23610.71ops/s.
total: 424.62 ± 1.09ms. best: 423.54ms.
avg: 0.04 ± 0.00ms
min: 0.01 ± 0.00ms
max: 0.16 ± 0.02ms
p99: 0.11 ± 0.00ms

10000 nearest, number_of_results=5
ops: 17848.21 ± 12.07 ops/s. best: 17877.39ops/s.
total: 560.28 ± 0.38ms. best: 559.37ms.
avg: 0.06 ± 0.00ms
min: 0.02 ± 0.00ms
max: 0.17 ± 0.00ms
p99: 0.12 ± 0.00ms

10000 nearest, number_of_results=10
ops: 14152.45 ± 4.74 ops/s. best: 14162.54ops/s.
total: 706.59 ± 0.24ms. best: 706.09ms.
avg: 0.07 ± 0.00ms
min: 0.03 ± 0.00ms
max: 0.18 ± 0.00ms
p99: 0.14 ± 0.00ms
10000 nearest, number_of_results=1
ops: 23459.23 ± 38.36 ops/s. best: 23490.95ops/s.
total: 426.27 ± 0.70ms. best: 425.70ms.
avg: 0.04 ± 0.00ms
min: 0.01 ± 0.00ms
max: 0.16 ± 0.02ms
p99: 0.11 ± 0.00ms

10000 nearest, number_of_results=5
ops: 17748.17 ± 21.79 ops/s. best: 17786.33ops/s.
total: 563.44 ± 0.69ms. best: 562.23ms.
avg: 0.06 ± 0.00ms
min: 0.02 ± 0.00ms
max: 0.16 ± 0.00ms
p99: 0.12 ± 0.00ms

10000 nearest, number_of_results=10
ops: 13995.48 ± 29.31 ops/s. best: 14027.56ops/s.
total: 714.52 ± 1.50ms. best: 712.88ms.
avg: 0.07 ± 0.00ms
min: 0.03 ± 0.00ms
max: 0.18 ± 0.01ms
p99: 0.14 ± 0.00ms
random_route_ch 1000 routes, 3 coordinates, no alternatives, overview=full, steps=true
ops: 521.61 ± 3.57 ops/s. best: 526.65ops/s.
total: 1886.59 ± 12.92ms. best: 1868.42ms.
avg: 1.92 ± 0.01ms
min: 0.32 ± 0.01ms
max: 3.29 ± 0.36ms
p99: 2.76 ± 0.06ms

1000 routes, 2 coordinates, 3 alternatives, overview=full, steps=true
ops: 611.77 ± 4.73 ops/s. best: 617.08ops/s.
total: 1634.71 ± 12.69ms. best: 1620.55ms.
avg: 1.63 ± 0.01ms
min: 0.05 ± 0.00ms
max: 4.06 ± 0.11ms
p99: 3.36 ± 0.06ms

1000 routes, 3 coordinates, no alternatives, overview=false, steps=false
ops: 1005.19 ± 2.84 ops/s. best: 1008.88ops/s.
total: 978.93 ± 2.77ms. best: 975.34ms.
avg: 0.99 ± 0.00ms
min: 0.24 ± 0.01ms
max: 1.73 ± 0.03ms
p99: 1.42 ± 0.03ms

1000 routes, 2 coordinates, 3 alternatives, overview=false, steps=false
ops: 1163.23 ± 3.90 ops/s. best: 1169.52ops/s.
total: 859.69 ± 2.88ms. best: 855.05ms.
avg: 0.86 ± 0.00ms
min: 0.04 ± 0.00ms
max: 2.56 ± 0.06ms
p99: 1.86 ± 0.01ms
1000 routes, 3 coordinates, no alternatives, overview=full, steps=true
ops: 511.52 ± 5.98 ops/s. best: 519.01ops/s.
total: 1924.05 ± 22.69ms. best: 1895.93ms.
avg: 1.96 ± 0.02ms
min: 0.32 ± 0.00ms
max: 3.58 ± 0.50ms
p99: 2.81 ± 0.05ms

1000 routes, 2 coordinates, 3 alternatives, overview=full, steps=true
ops: 581.91 ± 1.57 ops/s. best: 584.28ops/s.
total: 1718.51 ± 4.63ms. best: 1711.50ms.
avg: 1.72 ± 0.00ms
min: 0.05 ± 0.00ms
max: 4.83 ± 0.24ms
p99: 4.03 ± 0.06ms

1000 routes, 3 coordinates, no alternatives, overview=false, steps=false
ops: 925.66 ± 12.95 ops/s. best: 947.07ops/s.
total: 1063.30 ± 14.93ms. best: 1038.99ms.
avg: 1.08 ± 0.02ms
min: 0.24 ± 0.00ms
max: 1.78 ± 0.03ms
p99: 1.54 ± 0.03ms

1000 routes, 2 coordinates, 3 alternatives, overview=false, steps=false
ops: 1067.00 ± 8.41 ops/s. best: 1084.59ops/s.
total: 937.28 ± 7.33ms. best: 922.01ms.
avg: 0.94 ± 0.01ms
min: 0.04 ± 0.00ms
max: 2.64 ± 0.16ms
p99: 2.33 ± 0.02ms
random_route_mld 1000 routes, 3 coordinates, no alternatives, overview=full, steps=true
ops: 246.32 ± 4.78 ops/s. best: 254.60ops/s.
total: 3996.88 ± 77.29ms. best: 3864.95ms.
avg: 4.06 ± 0.08ms
min: 0.32 ± 0.01ms
max: 8.84 ± 0.23ms
p99: 6.85 ± 0.18ms

1000 routes, 2 coordinates, 3 alternatives, overview=full, steps=true
ops: 241.78 ± 3.48 ops/s. best: 246.23ops/s.
total: 4137.09 ± 60.28ms. best: 4061.28ms.
avg: 4.14 ± 0.06ms
min: 0.05 ± 0.00ms
max: 9.83 ± 0.39ms
p99: 8.54 ± 0.15ms

1000 routes, 3 coordinates, no alternatives, overview=false, steps=false
ops: 332.86 ± 2.01 ops/s. best: 334.98ops/s.
total: 2956.35 ± 17.87ms. best: 2937.45ms.
avg: 3.00 ± 0.02ms
min: 0.29 ± 0.01ms
max: 7.25 ± 0.04ms
p99: 5.18 ± 0.04ms

1000 routes, 2 coordinates, 3 alternatives, overview=false, steps=false
ops: 301.13 ± 1.69 ops/s. best: 302.81ops/s.
total: 3321.01 ± 18.79ms. best: 3302.37ms.
avg: 3.32 ± 0.02ms
min: 0.04 ± 0.00ms
max: 7.37 ± 0.45ms
p99: 6.62 ± 0.03ms
1000 routes, 3 coordinates, no alternatives, overview=full, steps=true
ops: 251.26 ± 5.50 ops/s. best: 258.19ops/s.
total: 3918.90 ± 95.82ms. best: 3811.15ms.
avg: 3.98 ± 0.10ms
min: 0.31 ± 0.01ms
max: 8.66 ± 0.16ms
p99: 6.68 ± 0.11ms

1000 routes, 2 coordinates, 3 alternatives, overview=full, steps=true
ops: 240.93 ± 0.35 ops/s. best: 241.39ops/s.
total: 4150.59 ± 6.25ms. best: 4142.70ms.
avg: 4.15 ± 0.01ms
min: 0.05 ± 0.00ms
max: 10.04 ± 0.45ms
p99: 8.58 ± 0.02ms

1000 routes, 3 coordinates, no alternatives, overview=false, steps=false
ops: 324.42 ± 2.36 ops/s. best: 327.75ops/s.
total: 3033.28 ± 22.19ms. best: 3002.25ms.
avg: 3.08 ± 0.02ms
min: 0.28 ± 0.00ms
max: 7.38 ± 0.13ms
p99: 5.30 ± 0.06ms

1000 routes, 2 coordinates, 3 alternatives, overview=false, steps=false
ops: 298.30 ± 0.78 ops/s. best: 299.52ops/s.
total: 3352.37 ± 9.25ms. best: 3338.67ms.
avg: 3.35 ± 0.01ms
min: 0.04 ± 0.00ms
max: 7.56 ± 0.71ms
p99: 6.74 ± 0.02ms
random_table_ch 250 tables, 3 coordinates
ops: 1417.31 ± 9.04 ops/s. best: 1424.18ops/s.
total: 176.40 ± 1.14ms. best: 175.54ms.
avg: 0.71 ± 0.00ms
min: 0.53 ± 0.00ms
max: 1.03 ± 0.21ms
p99: 0.89 ± 0.03ms

250 tables, 25 coordinates
ops: 168.02 ± 0.12 ops/s. best: 168.19ops/s.
total: 1487.89 ± 1.07ms. best: 1486.38ms.
avg: 5.95 ± 0.00ms
min: 5.28 ± 0.01ms
max: 6.56 ± 0.01ms
p99: 6.47 ± 0.02ms

250 tables, 50 coordinates
ops: 82.97 ± 0.03 ops/s. best: 83.04ops/s.
total: 3013.06 ± 1.24ms. best: 3010.43ms.
avg: 12.05 ± 0.00ms
min: 11.23 ± 0.04ms
max: 12.83 ± 0.02ms
p99: 12.79 ± 0.02ms
250 tables, 3 coordinates
ops: 1369.60 ± 8.37 ops/s. best: 1378.00ops/s.
total: 182.54 ± 1.13ms. best: 181.42ms.
avg: 0.73 ± 0.00ms
min: 0.56 ± 0.00ms
max: 1.10 ± 0.24ms
p99: 0.89 ± 0.03ms

250 tables, 25 coordinates
ops: 161.23 ± 0.37 ops/s. best: 161.80ops/s.
total: 1550.64 ± 3.58ms. best: 1545.16ms.
avg: 6.20 ± 0.01ms
min: 5.63 ± 0.02ms
max: 6.96 ± 0.36ms
p99: 6.69 ± 0.04ms

250 tables, 50 coordinates
ops: 79.44 ± 0.16 ops/s. best: 79.61ops/s.
total: 3146.87 ± 6.69ms. best: 3140.16ms.
avg: 12.59 ± 0.03ms
min: 11.89 ± 0.03ms
max: 13.54 ± 0.11ms
p99: 13.38 ± 0.05ms
random_table_mld 250 tables, 3 coordinates
ops: 333.46 ± 0.94 ops/s. best: 334.61ops/s.
total: 749.73 ± 2.13ms. best: 747.13ms.
avg: 3.00 ± 0.01ms
min: 2.52 ± 0.01ms
max: 4.00 ± 0.28ms
p99: 3.64 ± 0.14ms

250 tables, 25 coordinates
ops: 36.82 ± 0.12 ops/s. best: 37.12ops/s.
total: 6790.42 ± 22.65ms. best: 6734.07ms.
avg: 27.16 ± 0.09ms
min: 25.53 ± 0.09ms
max: 30.04 ± 0.90ms
p99: 29.11 ± 0.21ms

250 tables, 50 coordinates
ops: 17.19 ± 0.06 ops/s. best: 17.29ops/s.
total: 14542.38 ± 51.25ms. best: 14458.21ms.
avg: 58.17 ± 0.20ms
min: 55.78 ± 0.23ms
max: 62.19 ± 1.02ms
p99: 60.98 ± 0.46ms
250 tables, 3 coordinates
ops: 330.83 ± 1.38 ops/s. best: 332.96ops/s.
total: 755.69 ± 3.16ms. best: 750.83ms.
avg: 3.02 ± 0.01ms
min: 2.52 ± 0.02ms
max: 3.99 ± 0.16ms
p99: 3.75 ± 0.11ms

250 tables, 25 coordinates
ops: 36.70 ± 0.15 ops/s. best: 36.89ops/s.
total: 6811.87 ± 28.46ms. best: 6776.71ms.
avg: 27.25 ± 0.11ms
min: 25.46 ± 0.04ms
max: 30.59 ± 1.77ms
p99: 29.20 ± 0.21ms

250 tables, 50 coordinates
ops: 17.21 ± 0.08 ops/s. best: 17.31ops/s.
total: 14529.55 ± 65.83ms. best: 14441.48ms.
avg: 58.12 ± 0.26ms
min: 55.57 ± 0.35ms
max: 62.32 ± 1.00ms
p99: 60.96 ± 0.43ms
random_trip_ch 250 trips, 3 coordinates
ops: 498.65 ± 3.39 ops/s. best: 502.60ops/s.
total: 501.38 ± 3.43ms. best: 497.41ms.
avg: 2.01 ± 0.01ms
min: 1.14 ± 0.01ms
max: 2.75 ± 0.29ms
p99: 2.54 ± 0.05ms

250 trips, 5 coordinates
ops: 331.12 ± 1.31 ops/s. best: 332.64ops/s.
total: 755.04 ± 3.00ms. best: 751.55ms.
avg: 3.02 ± 0.01ms
min: 2.08 ± 0.01ms
max: 3.82 ± 0.16ms
p99: 3.62 ± 0.03ms
250 trips, 3 coordinates
ops: 458.57 ± 7.61 ops/s. best: 468.93ops/s.
total: 545.36 ± 9.50ms. best: 533.13ms.
avg: 2.18 ± 0.04ms
min: 1.17 ± 0.03ms
max: 3.22 ± 0.31ms
p99: 2.87 ± 0.03ms

250 trips, 5 coordinates
ops: 308.58 ± 1.75 ops/s. best: 311.29ops/s.
total: 810.20 ± 4.61ms. best: 803.11ms.
avg: 3.24 ± 0.02ms
min: 2.09 ± 0.02ms
max: 4.17 ± 0.18ms
p99: 3.97 ± 0.06ms
random_trip_mld 250 trips, 3 coordinates
ops: 171.78 ± 2.76 ops/s. best: 174.50ops/s.
total: 1455.94 ± 23.94ms. best: 1432.63ms.
avg: 5.82 ± 0.10ms
min: 3.58 ± 0.10ms
max: 8.02 ± 0.75ms
p99: 7.45 ± 0.29ms

250 trips, 5 coordinates
ops: 110.07 ± 1.15 ops/s. best: 111.42ops/s.
total: 2271.51 ± 24.23ms. best: 2243.69ms.
avg: 9.09 ± 0.10ms
min: 6.58 ± 0.03ms
max: 12.11 ± 1.26ms
p99: 11.07 ± 0.36ms
250 trips, 3 coordinates
ops: 158.40 ± 1.02 ops/s. best: 160.36ops/s.
total: 1578.41 ± 10.19ms. best: 1558.96ms.
avg: 6.31 ± 0.04ms
min: 3.75 ± 0.03ms
max: 9.03 ± 0.64ms
p99: 8.42 ± 0.31ms

250 trips, 5 coordinates
ops: 103.96 ± 0.58 ops/s. best: 104.61ops/s.
total: 2404.80 ± 13.55ms. best: 2389.90ms.
avg: 9.62 ± 0.05ms
min: 6.81 ± 0.06ms
max: 11.81 ± 0.19ms
p99: 11.63 ± 0.19ms
route_ch 1000 routes, 3 coordinates, no alternatives, overview=full, steps=true
426.129ms
0.426129ms/req
1000 routes, 2 coordinates, 3 alternatives, overview=full, steps=true
505.047ms
0.505047ms/req
1000 routes, 3 coordinates, no alternatives, overview=false, steps=false
147.44ms
0.14744ms/req
1000 routes, 2 coordinates, 3 alternatives, overview=false, steps=false
130.413ms
0.130413ms/req
1000 routes, 3 coordinates, no alternatives, overview=full, steps=true
422.969ms
0.422969ms/req
1000 routes, 2 coordinates, 3 alternatives, overview=full, steps=true
505.354ms
0.505354ms/req
1000 routes, 3 coordinates, no alternatives, overview=false, steps=false
147.213ms
0.147213ms/req
1000 routes, 2 coordinates, 3 alternatives, overview=false, steps=false
130.043ms
0.130043ms/req
route_mld 1000 routes, 3 coordinates, no alternatives, overview=full, steps=true
577.579ms
0.577579ms/req
1000 routes, 2 coordinates, 3 alternatives, overview=full, steps=true
728.618ms
0.728618ms/req
1000 routes, 3 coordinates, no alternatives, overview=false, steps=false
298.767ms
0.298767ms/req
1000 routes, 2 coordinates, 3 alternatives, overview=false, steps=false
329.315ms
0.329315ms/req
1000 routes, 3 coordinates, no alternatives, overview=full, steps=true
567.101ms
0.567101ms/req
1000 routes, 2 coordinates, 3 alternatives, overview=full, steps=true
713.801ms
0.713801ms/req
1000 routes, 3 coordinates, no alternatives, overview=false, steps=false
288.206ms
0.288206ms/req
1000 routes, 2 coordinates, 3 alternatives, overview=false, steps=false
316.298ms
0.316298ms/req
rtree 1 result:
196.038ms -> 0.0196038 ms/query
10 results:
229.102ms -> 0.0229102 ms/query
1 result:
192.668ms -> 0.0192668 ms/query
10 results:
227.587ms -> 0.0227587 ms/query

@SiarheiFedartsou SiarheiFedartsou changed the title Try to add NodeJs based benchmarks Add NodeJs based benchmarks Jul 23, 2024
@SiarheiFedartsou SiarheiFedartsou marked this pull request as ready for review July 23, 2024 16:05
@SiarheiFedartsou SiarheiFedartsou changed the title Add NodeJs based benchmarks Add NodeJs bindings benchmarks Jul 23, 2024
@SiarheiFedartsou SiarheiFedartsou merged commit 84f12c7 into master Jul 26, 2024
22 checks passed
@SiarheiFedartsou
Copy link
Member Author

I assume it is okay to merge it without explicit approval... Let me know in case of any concerns.

@SiarheiFedartsou SiarheiFedartsou deleted the sf-node-bench branch July 26, 2024 17:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant