Project-OSRM / osrm-backend

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

Implement end to end benchmark #6910

Closed SiarheiFedartsou closed 5 months ago

SiarheiFedartsou commented 5 months ago

Adds simple end to end benchmark on top of osrm-routed using Locust.

Benchmark Results

| Benchmark | Base | PR | |-----------|------|----| | alias | aliased u32: 1093.29
plain u32: 1091.23
aliased double: 952.338
plain double: 956.702 | aliased u32: 1133.57
plain u32: 1144.15
aliased double: 1175.45
plain double: 1173.39 | | e2e_match_ch | | requests: 360
failures: 0
req/s: 6.000req/s
avg: 4.544ms
50%: 3ms
75%: 4ms
95%: 14ms
98%: 23ms
99%: 50ms
min: 1.266ms
max: 86.290ms | | e2e_match_mld | | requests: 357
failures: 0
req/s: 5.951req/s
avg: 4.275ms
50%: 3ms
75%: 4ms
95%: 9ms
98%: 16ms
99%: 28ms
min: 1.135ms
max: 84.690ms | | e2e_nearest_ch | | requests: 424
failures: 0
req/s: 7.067req/s
avg: 1.517ms
50%: 1ms
75%: 2ms
95%: 2ms
98%: 2ms
99%: 3ms
min: 1.020ms
max: 4.992ms | | e2e_nearest_mld | | requests: 415
failures: 0
req/s: 6.918req/s
avg: 1.569ms
50%: 1ms
75%: 2ms
95%: 2ms
98%: 2ms
99%: 3ms
min: 1.084ms
max: 5.079ms | | e2e_route_ch | | requests: 392
failures: 0
req/s: 6.533req/s
avg: 4.246ms
50%: 4ms
75%: 5ms
95%: 6ms
98%: 7ms
99%: 9ms
min: 1.487ms
max: 102.312ms | | e2e_route_mld | | requests: 406
failures: 0
req/s: 6.768req/s
avg: 4.961ms
50%: 4ms
75%: 5ms
95%: 6ms
98%: 8ms
99%: 10ms
min: 1.528ms
max: 131.046ms | | e2e_table_ch | | requests: 388
failures: 0
req/s: 6.467req/s
avg: 42.608ms
50%: 26ms
75%: 60ms
95%: 120ms
98%: 130ms
99%: 140ms
min: 2.862ms
max: 283.926ms | | e2e_table_mld | | requests: 368
failures: 0
req/s: 6.135req/s
avg: 71.487ms
50%: 72ms
75%: 110ms
95%: 130ms
98%: 140ms
99%: 150ms
min: 4.778ms
max: 166.581ms | | e2e_trip_ch | | requests: 390
failures: 0
req/s: 6.500req/s
avg: 17.487ms
50%: 16ms
75%: 23ms
95%: 32ms
98%: 35ms
99%: 41ms
min: 2.078ms
max: 50.766ms | | e2e_trip_mld | | requests: 349
failures: 0
req/s: 5.818req/s
avg: 22.068ms
50%: 21ms
75%: 29ms
95%: 37ms
98%: 43ms
99%: 47ms
min: 1.768ms
max: 47.821ms | | json-render | String: 6.85371ms
Stringstream: 9.37528ms
Vector: 6.87212ms | String: 6.79794ms
Stringstream: 10.4829ms
Vector: 6.61191ms | | match_ch | Default radius:
4.40133ms/req at 82 coordinate
0.0536747ms/coordinate
Radius 5m:
4.38057ms/req at 82 coordinate
0.0534216ms/coordinate
Radius 10m:
14.9902ms/req at 82 coordinate
0.182807ms/coordinate
Radius 15m:
36.5587ms/req at 82 coordinate
0.445838ms/coordinate
Radius 30m:
311.559ms/req at 82 coordinate
3.7995ms/coordinate | Default radius:
4.51377ms/req at 82 coordinate
0.055046ms/coordinate
Radius 5m:
4.49318ms/req at 82 coordinate
0.0547949ms/coordinate
Radius 10m:
15.2425ms/req at 82 coordinate
0.185884ms/coordinate
Radius 15m:
37.2092ms/req at 82 coordinate
0.45377ms/coordinate
Radius 30m:
318.207ms/req at 82 coordinate
3.88057ms/coordinate | | match_mld | Default radius:
2.79772ms/req at 82 coordinate
0.0341186ms/coordinate
Radius 5m:
2.7976ms/req at 82 coordinate
0.0341171ms/coordinate
Radius 10m:
10.1047ms/req at 82 coordinate
0.123228ms/coordinate
Radius 15m:
25.6716ms/req at 82 coordinate
0.313068ms/coordinate
Radius 30m:
301.903ms/req at 82 coordinate
3.68175ms/coordinate | Default radius:
2.8697ms/req at 82 coordinate
0.0349964ms/coordinate
Radius 5m:
2.86446ms/req at 82 coordinate
0.0349325ms/coordinate
Radius 10m:
10.4515ms/req at 82 coordinate
0.127457ms/coordinate
Radius 15m:
26.7742ms/req at 82 coordinate
0.326515ms/coordinate
Radius 30m:
313.912ms/req at 82 coordinate
3.82819ms/coordinate | | packedvector | random write:
std::vector 9820.13 ms
util::packed_vector 73680.7 ms
slowdown: 7.50303
random read:
std::vector 8465.69 ms
util::packed_vector 29938.3 ms
slowdown: 3.53643 | random write:
std::vector 11200 ms
util::packed_vector 78545.3 ms
slowdown: 7.013
random read:
std::vector 11049.3 ms
util::packed_vector 33985.1 ms
slowdown: 3.07577 | | route_ch | 1000 routes, 3 coordinates, no alternatives, overview=full, steps=true
511.596ms
0.511596ms/req
1000 routes, 2 coordinates, no alternatives, overview=full, steps=true
349.764ms
0.349764ms/req
1000 routes, 2 coordinates, 3 alternatives, overview=full, steps=true
628.974ms
0.628974ms/req
1000 routes, 3 coordinates, no alternatives, overview=false, steps=false
151.383ms
0.151383ms/req
1000 routes, 2 coordinates, no alternatives, overview=false, steps=false
97.1765ms
0.0971765ms/req
1000 routes, 2 coordinates, 3 alternatives, overview=false, steps=false
132.588ms
0.132588ms/req
1000 routes, 3 coordinates, no alternatives, overview=false, steps=false, radius=750
151.41ms
0.15141ms/req
1000 routes, 2 coordinates, no alternatives, overview=false, steps=false, radius=750
97.1269ms
0.0971269ms/req
1000 routes, 2 coordinates, 3 alternatives, overview=false, steps=false, radius=750
132.337ms
0.132337ms/req | 1000 routes, 3 coordinates, no alternatives, overview=full, steps=true
591.891ms
0.591891ms/req
1000 routes, 2 coordinates, no alternatives, overview=full, steps=true
377.239ms
0.377239ms/req
1000 routes, 2 coordinates, 3 alternatives, overview=full, steps=true
750.355ms
0.750355ms/req
1000 routes, 3 coordinates, no alternatives, overview=false, steps=false
152.63ms
0.15263ms/req
1000 routes, 2 coordinates, no alternatives, overview=false, steps=false
97.6715ms
0.0976715ms/req
1000 routes, 2 coordinates, 3 alternatives, overview=false, steps=false
133.95ms
0.13395ms/req
1000 routes, 3 coordinates, no alternatives, overview=false, steps=false, radius=750
153.155ms
0.153155ms/req
1000 routes, 2 coordinates, no alternatives, overview=false, steps=false, radius=750
98.4571ms
0.0984571ms/req
1000 routes, 2 coordinates, 3 alternatives, overview=false, steps=false, radius=750
134.76ms
0.13476ms/req | | route_mld | 1000 routes, 3 coordinates, no alternatives, overview=full, steps=true
639.992ms
0.639992ms/req
1000 routes, 2 coordinates, no alternatives, overview=full, steps=true
435.856ms
0.435856ms/req
1000 routes, 2 coordinates, 3 alternatives, overview=full, steps=true
809.897ms
0.809897ms/req
1000 routes, 3 coordinates, no alternatives, overview=false, steps=false
271.428ms
0.271428ms/req
1000 routes, 2 coordinates, no alternatives, overview=false, steps=false
160.096ms
0.160096ms/req
1000 routes, 2 coordinates, 3 alternatives, overview=false, steps=false
283.595ms
0.283595ms/req
1000 routes, 3 coordinates, no alternatives, overview=false, steps=false, radius=750
264.709ms
0.264709ms/req
1000 routes, 2 coordinates, no alternatives, overview=false, steps=false, radius=750
159.869ms
0.159869ms/req
1000 routes, 2 coordinates, 3 alternatives, overview=false, steps=false, radius=750
283.983ms
0.283983ms/req | 1000 routes, 3 coordinates, no alternatives, overview=full, steps=true
722.69ms
0.72269ms/req
1000 routes, 2 coordinates, no alternatives, overview=full, steps=true
463.541ms
0.463541ms/req
1000 routes, 2 coordinates, 3 alternatives, overview=full, steps=true
937.415ms
0.937415ms/req
1000 routes, 3 coordinates, no alternatives, overview=false, steps=false
288.738ms
0.288738ms/req
1000 routes, 2 coordinates, no alternatives, overview=false, steps=false
165.399ms
0.165399ms/req
1000 routes, 2 coordinates, 3 alternatives, overview=false, steps=false
294.623ms
0.294623ms/req
1000 routes, 3 coordinates, no alternatives, overview=false, steps=false, radius=750
273.89ms
0.27389ms/req
1000 routes, 2 coordinates, no alternatives, overview=false, steps=false, radius=750
165.189ms
0.165189ms/req
1000 routes, 2 coordinates, 3 alternatives, overview=false, steps=false, radius=750
294.919ms
0.294919ms/req | | rtree | 1 result:
208.068ms -> 0.0208068 ms/query
10 results:
242.6ms -> 0.02426 ms/query | 1 result:
207.177ms -> 0.0207177 ms/query
10 results:
242.041ms -> 0.0242041 ms/query |