/php-routers-benchmarks

PHP Routers Benchmarks

Primary LanguagePHPBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

The PHP Routers Benchmark

Software License Workflow Status Code Maintainability Quality Score Sponsor development of this project

The intent here is to benchmark and also inventory all popular PHP routing solutions around.

📦 Installation & Basic Usage

This project requires PHP 7.4 or higher. The recommended way to install, is via Composer and GitHub Ci to clone the repo.:

$ gh repo clone divineniiquaye/php-routers-benchmark
$ cd php-routers-benchmark && composer install
$ php vendor/bin/phpbench run --report default

🧪 Benchmarking Process

The benchmarking process uses phpbench. I can say of the benchmarks projects I've seen, my benchmark process is one of the best out there. With much reading and experimenting, I took inspiration from Nikita Popov's blog post "Fast request routing using regular expressions" and Nicolas Grekas blog posts Making Symfony’s Router 77.7x faster - 1/2, and Making Symfony router lightning fast - 2/2 in creating the benchmark process.

All router creates a total of about 1,600 unique routes, either up to, or lesser. With each having 400 for static paths, dynamic paths of 1 variable placeholders, a domain with static path, and a domain with dynamic path having 1 variable placeholder.

Benchmarks runs on three cases:

  • benchStaticRoutes: match the best, average, worst, and invalid method route from the list of routing definitions. If domain is supported by router, matching is applied.
  • benchDynamicRoutes: match the best, average, worst, and invalid method route from the list of routing definitions. If domain is supported by router, matching is applied.
  • benchOtherRoutes: match other scenarios such as non existent route from routing definitions.
  • benchRealStaticCase: Runs both the dispatcher and scenerio all together against static routes and finds a match. If domain is supported by the router, matching is applied.
  • benchRealDynamicCase: Runs both the dispatcher and scenerio all together against dynamic routes and finds a match. If domain is supported by the router, matching is applied.

All the routers follows a set of Parameterized Benchmarking:

  • in the first set of benchmarking, routers are to match only a single(GET) HTTP method.
  • in the second set of benchmarking, routers are to match all(GET,POST,PATCH,PUT,DELETE) HTTP methods.
  • in the third and last set of benchmarking, routers are to match the first set including a domain if available.

Benchmarking were conducted on the following routers:

✳️ BenchMark Results

This is a benchmarked results runned on GitHub Action with Ubuntu 18, and PHP 7.4.

AltRouter
+--------------------+----------------------------+----------+-------------+-------------+-------------+-------------+-----------+--------+
| subject            | set                        | mem_peak | mode        | best        | mean        | worst       | stdev     | rstdev |
+--------------------+----------------------------+----------+-------------+-------------+-------------+-------------+-----------+--------+
| benchStaticRoutes  | GET Method,Best Case       | 3.821mb  | 2.389μs     | 2.260μs     | 2.356μs     | 2.430μs     | 0.065μs   | ±2.75% |
| benchStaticRoutes  | ALL Methods,Best Case      | 3.823mb  | 10.865μs    | 10.770μs    | 10.948μs    | 11.210μs    | 0.167μs   | ±1.52% |
| benchStaticRoutes  | GET Method,Average Case    | 3.821mb  | 923.173μs   | 879.470μs   | 913.298μs   | 955.430μs   | 29.595μs  | ±3.24% |
| benchStaticRoutes  | ALL Methods,Average Case   | 3.823mb  | 4,639.312μs | 4,463.200μs | 4,613.920μs | 4,724.050μs | 84.770μs  | ±1.84% |
| benchStaticRoutes  | GET Method,Worst Case      | 3.821mb  | 1,773.426μs | 1,689.640μs | 1,758.124μs | 1,812.670μs | 43.567μs  | ±2.48% |
| benchStaticRoutes  | ALL Methods,Worst Case     | 3.823mb  | 9,706.135μs | 9,165.860μs | 9,613.744μs | 9,950.180μs | 268.004μs | ±2.79% |
| benchStaticRoutes  | GET Method,Invalid Method  | 3.821mb  | 365.586μs   | 360.040μs   | 369.942μs   | 388.100μs   | 9.674μs   | ±2.61% |
| benchStaticRoutes  | ALL Methods,Invalid Method | 3.823mb  | 351.925μs   | 328.770μs   | 344.936μs   | 353.420μs   | 10.263μs  | ±2.98% |
| benchDynamicRoutes | GET Method,Best Case       | 3.821mb  | 4.439μs     | 4.370μs     | 4.510μs     | 4.730μs     | 0.130μs   | ±2.88% |
| benchDynamicRoutes | ALL Methods,Best Case      | 3.823mb  | 25.765μs    | 25.470μs    | 26.050μs    | 27.220μs    | 0.617μs   | ±2.37% |
| benchDynamicRoutes | GET Method,Average Case    | 3.821mb  | 916.927μs   | 906.630μs   | 929.296μs   | 953.610μs   | 18.711μs  | ±2.01% |
| benchDynamicRoutes | ALL Methods,Average Case   | 3.823mb  | 4,609.892μs | 4,410.820μs | 4,619.008μs | 4,838.240μs | 137.662μs | ±2.98% |
| benchDynamicRoutes | GET Method,Worst Case      | 3.821mb  | 1,716.790μs | 1,646.540μs | 1,694.282μs | 1,738.350μs | 36.871μs  | ±2.18% |
| benchDynamicRoutes | ALL Methods,Worst Case     | 3.823mb  | 9,050.575μs | 8,659.000μs | 9,001.608μs | 9,270.910μs | 200.057μs | ±2.22% |
| benchDynamicRoutes | GET Method,Invalid Method  | 3.821mb  | 338.236μs   | 334.790μs   | 343.004μs   | 351.560μs   | 7.228μs   | ±2.11% |
| benchDynamicRoutes | ALL Methods,Invalid Method | 3.823mb  | 331.850μs   | 313.110μs   | 326.018μs   | 339.490μs   | 10.539μs  | ±3.23% |
| benchOtherRoutes   | GET Method,Non Existent    | 3.821mb  | 680.405μs   | 662.230μs   | 675.868μs   | 692.680μs   | 11.828μs  | ±1.75% |
| benchOtherRoutes   | ALL Methods,Non Existent   | 3.823mb  | 673.177μs   | 643.780μs   | 667.866μs   | 682.900μs   | 13.448μs  | ±2.01% |
+--------------------+----------------------------+----------+-------------+-------------+-------------+-------------+-----------+--------+

SymfonyRouter
+--------------------+--------------------------------+----------+-----------+-----------+-----------+-----------+---------+--------+
| subject            | set                            | mem_peak | mode      | best      | mean      | worst     | stdev   | rstdev |
+--------------------+--------------------------------+----------+-----------+-----------+-----------+-----------+---------+--------+
| benchStaticRoutes  | GET Method,Best Case           | 10.927mb | 0.754μs   | 0.700μs   | 0.736μs   | 0.760μs   | 0.026μs | ±3.50% |
| benchStaticRoutes  | ALL Methods,Best Case          | 10.929mb | 3.693μs   | 3.650μs   | 3.750μs   | 3.850μs   | 0.084μs | ±2.23% |
| benchStaticRoutes  | GET Method,Host,Best Case      | 10.927mb | 0.911μs   | 0.880μs   | 0.916μs   | 0.960μs   | 0.027μs | ±2.90% |
| benchStaticRoutes  | GET Method,Average Case        | 10.927mb | 0.787μs   | 0.740μs   | 0.772μs   | 0.800μs   | 0.023μs | ±3.00% |
| benchStaticRoutes  | ALL Methods,Average Case       | 10.929mb | 3.682μs   | 3.460μs   | 3.630μs   | 3.720μs   | 0.096μs | ±2.64% |
| benchStaticRoutes  | GET Method,Host,Average Case   | 10.927mb | 0.873μs   | 0.870μs   | 0.882μs   | 0.910μs   | 0.016μs | ±1.81% |
| benchStaticRoutes  | GET Method,Worst Case          | 10.927mb | 0.712μs   | 0.710μs   | 0.734μs   | 0.770μs   | 0.029μs | ±4.00% |
| benchStaticRoutes  | ALL Methods,Worst Case         | 10.929mb | 3.921μs   | 3.770μs   | 3.886μs   | 3.960μs   | 0.070μs | ±1.80% |
| benchStaticRoutes  | GET Method,Host,Worst Case     | 10.927mb | 1.036μs   | 1.020μs   | 1.044μs   | 1.080μs   | 0.021μs | ±1.97% |
| benchStaticRoutes  | GET Method,Invalid Method      | 10.928mb | 32.052μs  | 30.750μs  | 32.264μs  | 33.570μs  | 1.025μs | ±3.18% |
| benchStaticRoutes  | ALL Methods,Invalid Method     | 10.930mb | 35.218μs  | 34.320μs  | 35.354μs  | 36.280μs  | 0.711μs | ±2.01% |
| benchStaticRoutes  | GET Method,Host,Invalid Method | 10.928mb | 42.178μs  | 40.470μs  | 41.862μs  | 42.950μs  | 0.860μs | ±2.05% |
| benchDynamicRoutes | GET Method,Best Case           | 10.927mb | 1.457μs   | 1.380μs   | 1.450μs   | 1.510μs   | 0.042μs | ±2.89% |
| benchDynamicRoutes | ALL Methods,Best Case          | 10.929mb | 6.959μs   | 6.890μs   | 6.946μs   | 7.010μs   | 0.046μs | ±0.66% |
| benchDynamicRoutes | GET Method,Host,Best Case      | 10.928mb | 1.723μs   | 1.600μs   | 1.684μs   | 1.750μs   | 0.059μs | ±3.47% |
| benchDynamicRoutes | GET Method,Average Case        | 10.927mb | 10.149μs  | 9.950μs   | 10.296μs  | 10.750μs  | 0.307μs | ±2.98% |
| benchDynamicRoutes | ALL Methods,Average Case       | 10.929mb | 43.967μs  | 41.970μs  | 43.774μs  | 45.230μs  | 1.145μs | ±2.62% |
| benchDynamicRoutes | GET Method,Host,Average Case   | 10.928mb | 13.610μs  | 13.300μs  | 13.956μs  | 14.630μs  | 0.556μs | ±3.98% |
| benchDynamicRoutes | GET Method,Worst Case          | 10.927mb | 38.278μs  | 37.710μs  | 38.842μs  | 40.500μs  | 1.033μs | ±2.66% |
| benchDynamicRoutes | ALL Methods,Worst Case         | 10.929mb | 174.277μs | 166.900μs | 172.126μs | 175.240μs | 3.270μs | ±1.90% |
| benchDynamicRoutes | GET Method,Host,Worst Case     | 10.928mb | 48.584μs  | 46.720μs  | 48.462μs  | 50.050μs  | 1.074μs | ±2.22% |
| benchDynamicRoutes | GET Method,Invalid Method      | 10.928mb | 101.335μs | 98.380μs  | 101.494μs | 104.860μs | 2.129μs | ±2.10% |
| benchDynamicRoutes | ALL Methods,Invalid Method     | 10.930mb | 100.500μs | 97.140μs  | 99.970μs  | 102.770μs | 2.028μs | ±2.03% |
| benchDynamicRoutes | GET Method,Host,Invalid Method | 10.928mb | 113.796μs | 111.480μs | 113.526μs | 115.360μs | 1.346μs | ±1.19% |
| benchOtherRoutes   | GET Method,Non Existent        | 10.928mb | 23.476μs  | 23.050μs  | 23.664μs  | 24.330μs  | 0.459μs | ±1.94% |
| benchOtherRoutes   | ALL Methods,Non Existent       | 10.930mb | 24.521μs  | 24.060μs  | 24.850μs  | 25.990μs  | 0.676μs | ±2.72% |
| benchOtherRoutes   | GET Method,Host,Non Existent   | 10.928mb | 31.181μs  | 30.650μs  | 31.570μs  | 32.560μs  | 0.707μs | ±2.24% |
+--------------------+--------------------------------+----------+-----------+-----------+-----------+-----------+---------+--------+

NetteRouter
+--------------------+--------------------------------+----------+--------------+--------------+--------------+--------------+-----------+--------+
| subject            | set                            | mem_peak | mode         | best         | mean         | worst        | stdev     | rstdev |
+--------------------+--------------------------------+----------+--------------+--------------+--------------+--------------+-----------+--------+
| benchStaticRoutes  | GET Method,Best Case           | 3.821mb  | 3.627μs      | 3.390μs      | 3.544μs      | 3.700μs      | 0.129μs   | ±3.63% |
| benchStaticRoutes  | ALL Methods,Best Case          | 3.823mb  | 11.936μs     | 11.680μs     | 12.048μs     | 12.600μs     | 0.329μs   | ±2.73% |
| benchStaticRoutes  | GET Method,Host,Best Case      | 3.821mb  | 9.285μs      | 8.900μs      | 9.254μs      | 9.560μs      | 0.210μs   | ±2.27% |
| benchStaticRoutes  | GET Method,Average Case        | 3.821mb  | 1,422.536μs  | 1,411.090μs  | 1,433.966μs  | 1,481.560μs  | 24.873μs  | ±1.73% |
| benchStaticRoutes  | ALL Methods,Average Case       | 3.823mb  | 7,129.844μs  | 6,928.670μs  | 7,161.348μs  | 7,442.670μs  | 172.903μs | ±2.41% |
| benchStaticRoutes  | GET Method,Host,Average Case   | 3.821mb  | 1,578.265μs  | 1,528.020μs  | 1,567.490μs  | 1,606.060μs  | 27.925μs  | ±1.78% |
| benchStaticRoutes  | GET Method,Worst Case          | 3.821mb  | 2,853.845μs  | 2,663.060μs  | 2,787.248μs  | 2,906.180μs  | 99.248μs  | ±3.56% |
| benchStaticRoutes  | ALL Methods,Worst Case         | 3.823mb  | 14,465.322μs | 13,861.570μs | 14,330.318μs | 14,711.480μs | 297.480μs | ±2.08% |
| benchStaticRoutes  | GET Method,Host,Worst Case     | 3.821mb  | 3,206.385μs  | 3,058.870μs  | 3,193.802μs  | 3,316.140μs  | 84.112μs  | ±2.63% |
| benchStaticRoutes  | GET Method,Invalid Method      | 3.821mb  | 2,924.171μs  | 2,827.470μs  | 2,927.256μs  | 3,030.820μs  | 65.537μs  | ±2.24% |
| benchStaticRoutes  | ALL Methods,Invalid Method     | 3.823mb  | 2,732.412μs  | 2,670.370μs  | 2,726.330μs  | 2,772.970μs  | 34.253μs  | ±1.26% |
| benchStaticRoutes  | GET Method,Host,Invalid Method | 3.821mb  | 3,283.922μs  | 3,056.440μs  | 3,205.506μs  | 3,311.360μs  | 108.028μs | ±3.37% |
| benchDynamicRoutes | GET Method,Best Case           | 3.821mb  | 2,900.881μs  | 2,807.160μs  | 2,876.032μs  | 2,926.590μs  | 44.232μs  | ±1.54% |
| benchDynamicRoutes | ALL Methods,Best Case          | 3.823mb  | 14,667.582μs | 14,112.860μs | 14,505.492μs | 14,745.590μs | 249.966μs | ±1.72% |
| benchDynamicRoutes | GET Method,Host,Best Case      | 3.821mb  | 13.013μs     | 12.750μs     | 13.074μs     | 13.330μs     | 0.224μs   | ±1.71% |
| benchDynamicRoutes | GET Method,Average Case        | 3.821mb  | 2,776.206μs  | 2,733.860μs  | 2,817.442μs  | 2,934.220μs  | 73.152μs  | ±2.60% |
| benchDynamicRoutes | ALL Methods,Average Case       | 3.823mb  | 14,324.938μs | 13,812.690μs | 14,294.906μs | 14,697.010μs | 312.430μs | ±2.19% |
| benchDynamicRoutes | GET Method,Host,Average Case   | 3.821mb  | 1,690.389μs  | 1,646.280μs  | 1,702.876μs  | 1,778.090μs  | 50.613μs  | ±2.97% |
| benchDynamicRoutes | GET Method,Worst Case          | 3.821mb  | 2,775.092μs  | 2,731.520μs  | 2,810.660μs  | 2,945.610μs  | 74.685μs  | ±2.66% |
| benchDynamicRoutes | ALL Methods,Worst Case         | 3.823mb  | 15,329.444μs | 14,192.750μs | 14,916.140μs | 15,390.380μs | 555.937μs | ±3.73% |
| benchDynamicRoutes | GET Method,Host,Worst Case     | 3.821mb  | 3,163.592μs  | 3,117.560μs  | 3,258.352μs  | 3,419.130μs  | 134.609μs | ±4.13% |
| benchDynamicRoutes | GET Method,Invalid Method      | 3.821mb  | 2,957.606μs  | 2,832.390μs  | 2,932.662μs  | 2,994.790μs  | 56.072μs  | ±1.91% |
| benchDynamicRoutes | ALL Methods,Invalid Method     | 3.823mb  | 2,952.960μs  | 2,881.570μs  | 2,949.850μs  | 3,017.690μs  | 45.156μs  | ±1.53% |
| benchDynamicRoutes | GET Method,Host,Invalid Method | 3.822mb  | 3,414.900μs  | 3,287.270μs  | 3,368.276μs  | 3,438.590μs  | 65.406μs  | ±1.94% |
| benchOtherRoutes   | GET Method,Non Existent        | 3.821mb  | 2,732.750μs  | 2,670.240μs  | 2,770.818μs  | 2,884.620μs  | 77.167μs  | ±2.78% |
| benchOtherRoutes   | ALL Methods,Non Existent       | 3.823mb  | 3,018.665μs  | 2,997.150μs  | 3,083.978μs  | 3,208.580μs  | 90.691μs  | ±2.94% |
| benchOtherRoutes   | GET Method,Host,Non Existent   | 3.822mb  | 3,498.465μs  | 3,351.290μs  | 3,448.058μs  | 3,531.210μs  | 73.813μs  | ±2.14% |
+--------------------+--------------------------------+----------+--------------+--------------+--------------+--------------+-----------+--------+

LaravelRouter
+--------------------+--------------------------------+----------+-------------+-------------+-------------+-------------+-----------+--------+
| subject            | set                            | mem_peak | mode        | best        | mean        | worst       | stdev     | rstdev |
+--------------------+--------------------------------+----------+-------------+-------------+-------------+-------------+-----------+--------+
| benchStaticRoutes  | GET Method,Best Case           | 4.802mb  | 370.056μs   | 366.210μs   | 373.564μs   | 387.570μs   | 7.476μs   | ±2.00% |
| benchStaticRoutes  | ALL Methods,Best Case          | 4.805mb  | 1,951.235μs | 1,865.890μs | 1,956.104μs | 2,053.870μs | 60.089μs  | ±3.07% |
| benchStaticRoutes  | GET Method,Host,Best Case      | 4.808mb  | 374.402μs   | 370.290μs   | 378.704μs   | 387.100μs   | 6.713μs   | ±1.77% |
| benchStaticRoutes  | GET Method,Average Case        | 6.496mb  | 929.457μs   | 894.660μs   | 923.328μs   | 943.780μs   | 16.810μs  | ±1.82% |
| benchStaticRoutes  | ALL Methods,Average Case       | 6.498mb  | 4,720.229μs | 4,641.470μs | 4,705.710μs | 4,744.400μs | 34.792μs  | ±0.74% |
| benchStaticRoutes  | GET Method,Host,Average Case   | 6.501mb  | 994.378μs   | 964.700μs   | 1,002.212μs | 1,045.800μs | 28.580μs  | ±2.85% |
| benchStaticRoutes  | GET Method,Worst Case          | 8.231mb  | 1,508.129μs | 1,472.480μs | 1,502.304μs | 1,530.310μs | 20.005μs  | ±1.33% |
| benchStaticRoutes  | ALL Methods,Worst Case         | 8.233mb  | 7,411.741μs | 6,930.010μs | 7,241.174μs | 7,458.260μs | 233.675μs | ±3.23% |
| benchStaticRoutes  | GET Method,Host,Worst Case     | 8.235mb  | 1,439.478μs | 1,420.090μs | 1,449.722μs | 1,494.580μs | 26.090μs  | ±1.80% |
| benchStaticRoutes  | GET Method,Invalid Method      | 7.982mb  | 8,050.928μs | 7,981.780μs | 8,171.246μs | 8,383.310μs | 169.711μs | ±2.08% |
| benchStaticRoutes  | ALL Methods,Invalid Method     | 7.984mb  | 7,929.691μs | 7,862.880μs | 8,013.728μs | 8,357.670μs | 180.310μs | ±2.25% |
| benchStaticRoutes  | GET Method,Host,Invalid Method | 7.986mb  | 8,053.369μs | 7,980.780μs | 8,165.780μs | 8,475.350μs | 188.474μs | ±2.31% |
| benchDynamicRoutes | GET Method,Best Case           | 4.806mb  | 359.106μs   | 349.390μs   | 355.816μs   | 362.120μs   | 5.075μs   | ±1.43% |
| benchDynamicRoutes | ALL Methods,Best Case          | 4.808mb  | 1,879.958μs | 1,871.220μs | 1,888.060μs | 1,921.390μs | 18.325μs  | ±0.97% |
| benchDynamicRoutes | GET Method,Host,Best Case      | 4.813mb  | 397.491μs   | 387.230μs   | 394.152μs   | 400.920μs   | 5.371μs   | ±1.36% |
| benchDynamicRoutes | GET Method,Average Case        | 6.499mb  | 965.789μs   | 947.590μs   | 991.580μs   | 1,037.010μs | 37.870μs  | ±3.82% |
| benchDynamicRoutes | ALL Methods,Average Case       | 6.501mb  | 4,884.076μs | 4,553.490μs | 4,775.902μs | 4,970.600μs | 167.465μs | ±3.51% |
| benchDynamicRoutes | GET Method,Host,Average Case   | 6.505mb  | 917.160μs   | 886.790μs   | 922.382μs   | 965.970μs   | 25.341μs  | ±2.75% |
| benchDynamicRoutes | GET Method,Worst Case          | 8.234mb  | 1,403.957μs | 1,372.030μs | 1,414.600μs | 1,449.350μs | 29.503μs  | ±2.09% |
| benchDynamicRoutes | ALL Methods,Worst Case         | 8.236mb  | 7,091.919μs | 6,989.190μs | 7,166.728μs | 7,372.360μs | 140.419μs | ±1.96% |
| benchDynamicRoutes | GET Method,Host,Worst Case     | 8.239mb  | 1,523.220μs | 1,458.720μs | 1,504.490μs | 1,552.890μs | 36.553μs  | ±2.43% |
| benchDynamicRoutes | GET Method,Invalid Method      | 7.984mb  | 8,396.410μs | 8,035.270μs | 8,266.256μs | 8,456.600μs | 180.815μs | ±2.19% |
| benchDynamicRoutes | ALL Methods,Invalid Method     | 7.986mb  | 8,154.782μs | 7,815.470μs | 8,055.116μs | 8,253.320μs | 167.206μs | ±2.08% |
| benchDynamicRoutes | GET Method,Host,Invalid Method | 7.990mb  | 8,129.809μs | 7,956.750μs | 8,197.858μs | 8,550.260μs | 195.707μs | ±2.39% |
| benchOtherRoutes   | GET Method,Non Existent        | 7.989mb  | 7,722.918μs | 7,615.330μs | 7,801.348μs | 8,143.960μs | 180.045μs | ±2.31% |
| benchOtherRoutes   | ALL Methods,Non Existent       | 7.991mb  | 7,987.794μs | 7,946.960μs | 8,015.622μs | 8,113.890μs | 58.234μs  | ±0.73% |
| benchOtherRoutes   | GET Method,Host,Non Existent   | 7.989mb  | 8,395.811μs | 8,279.560μs | 8,538.840μs | 8,796.120μs | 214.642μs | ±2.51% |
+--------------------+--------------------------------+----------+-------------+-------------+-------------+-------------+-----------+--------+

SpiralRouter
+--------------------+----------------------------+----------+-------------+-------------+-------------+-------------+----------+--------+
| subject            | set                        | mem_peak | mode        | best        | mean        | worst       | stdev    | rstdev |
+--------------------+----------------------------+----------+-------------+-------------+-------------+-------------+----------+--------+
| benchStaticRoutes  | GET Method,Best Case       | 3.821mb  | 25.471μs    | 24.110μs    | 25.172μs    | 25.810μs    | 0.620μs  | ±2.46% |
| benchStaticRoutes  | ALL Methods,Best Case      | 3.823mb  | 127.461μs   | 119.400μs   | 124.808μs   | 130.810μs   | 4.681μs  | ±3.75% |
| benchStaticRoutes  | GET Method,Average Case    | 3.821mb  | 329.920μs   | 324.370μs   | 333.680μs   | 349.470μs   | 8.586μs  | ±2.57% |
| benchStaticRoutes  | ALL Methods,Average Case   | 3.823mb  | 1,727.256μs | 1,703.730μs | 1,758.482μs | 1,825.160μs | 48.087μs | ±2.73% |
| benchStaticRoutes  | GET Method,Worst Case      | 3.821mb  | 681.682μs   | 651.790μs   | 675.922μs   | 694.220μs   | 14.828μs | ±2.19% |
| benchStaticRoutes  | ALL Methods,Worst Case     | 3.823mb  | 3,385.078μs | 3,244.860μs | 3,354.114μs | 3,410.720μs | 61.291μs | ±1.83% |
| benchStaticRoutes  | GET Method,Invalid Method  | 3.821mb  | 162.513μs   | 159.480μs   | 165.284μs   | 170.630μs   | 4.534μs  | ±2.74% |
| benchStaticRoutes  | ALL Methods,Invalid Method | 3.823mb  | 167.670μs   | 158.450μs   | 165.188μs   | 171.950μs   | 5.057μs  | ±3.06% |
| benchDynamicRoutes | GET Method,Best Case       | 3.821mb  | 28.709μs    | 27.700μs    | 28.356μs    | 28.910μs    | 0.511μs  | ±1.80% |
| benchDynamicRoutes | ALL Methods,Best Case      | 3.823mb  | 132.150μs   | 130.210μs   | 133.254μs   | 138.140μs   | 2.688μs  | ±2.02% |
| benchDynamicRoutes | GET Method,Average Case    | 3.821mb  | 378.062μs   | 361.430μs   | 374.370μs   | 381.570μs   | 7.398μs  | ±1.98% |
| benchDynamicRoutes | ALL Methods,Average Case   | 3.823mb  | 1,836.421μs | 1,807.780μs | 1,852.808μs | 1,926.770μs | 39.961μs | ±2.16% |
| benchDynamicRoutes | GET Method,Worst Case      | 3.821mb  | 676.017μs   | 660.400μs   | 674.920μs   | 688.110μs   | 9.488μs  | ±1.41% |
| benchDynamicRoutes | ALL Methods,Worst Case     | 3.823mb  | 3,413.022μs | 3,323.450μs | 3,405.426μs | 3,475.010μs | 51.352μs | ±1.51% |
| benchDynamicRoutes | GET Method,Invalid Method  | 3.821mb  | 173.010μs   | 167.690μs   | 173.098μs   | 178.740μs   | 3.622μs  | ±2.09% |
| benchDynamicRoutes | ALL Methods,Invalid Method | 3.823mb  | 170.745μs   | 168.300μs   | 172.420μs   | 178.800μs   | 3.668μs  | ±2.13% |
| benchOtherRoutes   | GET Method,Non Existent    | 3.821mb  | 610.431μs   | 604.170μs   | 614.858μs   | 631.990μs   | 10.208μs | ±1.66% |
| benchOtherRoutes   | ALL Methods,Non Existent   | 3.823mb  | 569.109μs   | 565.820μs   | 578.954μs   | 598.770μs   | 13.878μs | ±2.40% |
+--------------------+----------------------------+----------+-------------+-------------+-------------+-------------+----------+--------+

FlightRouting
+--------------------+--------------------------------+----------+-----------+-----------+-----------+-----------+---------+--------+
| subject            | set                            | mem_peak | mode      | best      | mean      | worst     | stdev   | rstdev |
+--------------------+--------------------------------+----------+-----------+-----------+-----------+-----------+---------+--------+
| benchStaticRoutes  | GET Method,Best Case           | 3.821mb  | 1.525μs   | 1.460μs   | 1.508μs   | 1.540μs   | 0.029μs | ±1.94% |
| benchStaticRoutes  | ALL Methods,Best Case          | 3.823mb  | 3.701μs   | 3.550μs   | 3.684μs   | 3.800μs   | 0.083μs | ±2.24% |
| benchStaticRoutes  | GET Method,Host,Best Case      | 3.821mb  | 2.509μs   | 2.360μs   | 2.472μs   | 2.550μs   | 0.069μs | ±2.77% |
| benchStaticRoutes  | GET Method,Average Case        | 3.821mb  | 1.723μs   | 1.700μs   | 1.766μs   | 1.850μs   | 0.062μs | ±3.52% |
| benchStaticRoutes  | ALL Methods,Average Case       | 3.823mb  | 3.597μs   | 3.390μs   | 3.556μs   | 3.620μs   | 0.085μs | ±2.40% |
| benchStaticRoutes  | GET Method,Host,Average Case   | 3.821mb  | 2.501μs   | 2.380μs   | 2.480μs   | 2.560μs   | 0.062μs | ±2.49% |
| benchStaticRoutes  | GET Method,Worst Case          | 3.821mb  | 1.571μs   | 1.540μs   | 1.582μs   | 1.640μs   | 0.033μs | ±2.09% |
| benchStaticRoutes  | ALL Methods,Worst Case         | 3.823mb  | 3.320μs   | 3.240μs   | 3.306μs   | 3.350μs   | 0.037μs | ±1.13% |
| benchStaticRoutes  | GET Method,Host,Worst Case     | 3.821mb  | 2.126μs   | 2.010μs   | 2.106μs   | 2.170μs   | 0.053μs | ±2.52% |
| benchStaticRoutes  | GET Method,Invalid Method      | 3.821mb  | 2.905μs   | 2.770μs   | 2.888μs   | 2.980μs   | 0.070μs | ±2.41% |
| benchStaticRoutes  | ALL Methods,Invalid Method     | 3.823mb  | 2.884μs   | 2.860μs   | 2.908μs   | 2.970μs   | 0.042μs | ±1.43% |
| benchStaticRoutes  | GET Method,Host,Invalid Method | 3.822mb  | 3.095μs   | 3.010μs   | 3.166μs   | 3.310μs   | 0.121μs | ±3.81% |
| benchDynamicRoutes | GET Method,Best Case           | 3.821mb  | 3.154μs   | 2.930μs   | 3.082μs   | 3.170μs   | 0.102μs | ±3.30% |
| benchDynamicRoutes | ALL Methods,Best Case          | 3.823mb  | 7.583μs   | 7.410μs   | 7.794μs   | 8.180μs   | 0.325μs | ±4.17% |
| benchDynamicRoutes | GET Method,Host,Best Case      | 3.821mb  | 3.121μs   | 2.990μs   | 3.146μs   | 3.290μs   | 0.107μs | ±3.42% |
| benchDynamicRoutes | GET Method,Average Case        | 3.821mb  | 20.208μs  | 19.510μs  | 20.002μs  | 20.290μs  | 0.313μs | ±1.56% |
| benchDynamicRoutes | ALL Methods,Average Case       | 3.823mb  | 53.069μs  | 52.710μs  | 53.288μs  | 54.290μs  | 0.530μs | ±0.99% |
| benchDynamicRoutes | GET Method,Host,Average Case   | 3.821mb  | 35.165μs  | 34.770μs  | 36.010μs  | 37.740μs  | 1.203μs | ±3.34% |
| benchDynamicRoutes | GET Method,Worst Case          | 3.821mb  | 55.834μs  | 54.370μs  | 56.354μs  | 57.950μs  | 1.394μs | ±2.47% |
| benchDynamicRoutes | ALL Methods,Worst Case         | 3.823mb  | 265.696μs | 251.890μs | 261.062μs | 269.310μs | 7.225μs | ±2.77% |
| benchDynamicRoutes | GET Method,Host,Worst Case     | 3.821mb  | 79.049μs  | 73.440μs  | 77.248μs  | 80.660μs  | 2.817μs | ±3.65% |
| benchDynamicRoutes | GET Method,Invalid Method      | 3.821mb  | 60.263μs  | 58.360μs  | 59.702μs  | 61.130μs  | 1.074μs | ±1.80% |
| benchDynamicRoutes | ALL Methods,Invalid Method     | 3.823mb  | 59.487μs  | 56.020μs  | 58.804μs  | 60.150μs  | 1.490μs | ±2.53% |
| benchDynamicRoutes | GET Method,Host,Invalid Method | 3.822mb  | 77.303μs  | 77.130μs  | 78.590μs  | 80.820μs  | 1.721μs | ±2.19% |
| benchOtherRoutes   | GET Method,Non Existent        | 3.821mb  | 5.143μs   | 5.060μs   | 5.150μs   | 5.240μs   | 0.061μs | ±1.19% |
| benchOtherRoutes   | ALL Methods,Non Existent       | 3.823mb  | 4.667μs   | 4.580μs   | 4.688μs   | 4.830μs   | 0.080μs | ±1.71% |
| benchOtherRoutes   | GET Method,Host,Non Existent   | 3.822mb  | 57.971μs  | 57.020μs  | 58.604μs  | 61.360μs  | 1.508μs | ±2.57% |
+--------------------+--------------------------------+----------+-----------+-----------+-----------+-----------+---------+--------+

SunriseRouter
+--------------------+--------------------------------+----------+-------------+-------------+-------------+-------------+-----------+--------+
| subject            | set                            | mem_peak | mode        | best        | mean        | worst       | stdev     | rstdev |
+--------------------+--------------------------------+----------+-------------+-------------+-------------+-------------+-----------+--------+
| benchStaticRoutes  | GET Method,Best Case           | 3.823mb  | 19.662μs    | 19.190μs    | 19.532μs    | 19.810μs    | 0.231μs   | ±1.18% |
| benchStaticRoutes  | ALL Methods,Best Case          | 3.825mb  | 70.214μs    | 65.900μs    | 68.886μs    | 71.890μs    | 2.319μs   | ±3.37% |
| benchStaticRoutes  | GET Method,Host,Best Case      | 3.823mb  | 29.096μs    | 27.090μs    | 28.462μs    | 29.430μs    | 0.925μs   | ±3.25% |
| benchStaticRoutes  | GET Method,Average Case        | 3.823mb  | 452.769μs   | 447.040μs   | 462.832μs   | 481.080μs   | 14.185μs  | ±3.06% |
| benchStaticRoutes  | ALL Methods,Average Case       | 3.825mb  | 2,280.778μs | 2,256.910μs | 2,317.024μs | 2,421.730μs | 62.277μs  | ±2.69% |
| benchStaticRoutes  | GET Method,Host,Average Case   | 3.823mb  | 849.950μs   | 819.040μs   | 851.082μs   | 883.510μs   | 21.167μs  | ±2.49% |
| benchStaticRoutes  | GET Method,Worst Case          | 3.823mb  | 922.166μs   | 892.930μs   | 916.722μs   | 934.200μs   | 14.142μs  | ±1.54% |
| benchStaticRoutes  | ALL Methods,Worst Case         | 3.825mb  | 4,742.166μs | 4,712.300μs | 4,777.300μs | 4,860.470μs | 58.159μs  | ±1.22% |
| benchStaticRoutes  | GET Method,Host,Worst Case     | 3.823mb  | 1,814.726μs | 1,790.800μs | 1,819.406μs | 1,855.490μs | 20.735μs  | ±1.14% |
| benchStaticRoutes  | GET Method,Invalid Method      | 3.821mb  | 920.918μs   | 861.630μs   | 906.374μs   | 931.760μs   | 25.916μs  | ±2.86% |
| benchStaticRoutes  | ALL Methods,Invalid Method     | 3.823mb  | 922.356μs   | 867.760μs   | 904.810μs   | 932.640μs   | 25.763μs  | ±2.85% |
| benchStaticRoutes  | GET Method,Host,Invalid Method | 3.821mb  | 1,930.449μs | 1,863.000μs | 1,909.464μs | 1,946.860μs | 32.245μs  | ±1.69% |
| benchDynamicRoutes | GET Method,Best Case           | 3.823mb  | 27.409μs    | 26.800μs    | 27.778μs    | 28.890μs    | 0.796μs   | ±2.87% |
| benchDynamicRoutes | ALL Methods,Best Case          | 3.825mb  | 92.879μs    | 91.740μs    | 93.652μs    | 96.630μs    | 1.799μs   | ±1.92% |
| benchDynamicRoutes | GET Method,Host,Best Case      | 3.823mb  | 33.976μs    | 32.830μs    | 33.896μs    | 34.850μs    | 0.647μs   | ±1.91% |
| benchDynamicRoutes | GET Method,Average Case        | 3.823mb  | 488.937μs   | 485.070μs   | 492.534μs   | 505.030μs   | 7.257μs   | ±1.47% |
| benchDynamicRoutes | ALL Methods,Average Case       | 3.825mb  | 2,494.651μs | 2,441.520μs | 2,506.358μs | 2,589.880μs | 51.826μs  | ±2.07% |
| benchDynamicRoutes | GET Method,Host,Average Case   | 3.823mb  | 845.624μs   | 838.710μs   | 855.732μs   | 873.350μs   | 14.680μs  | ±1.72% |
| benchDynamicRoutes | GET Method,Worst Case          | 3.823mb  | 989.853μs   | 923.600μs   | 967.166μs   | 1,004.400μs | 32.776μs  | ±3.39% |
| benchDynamicRoutes | ALL Methods,Worst Case         | 3.825mb  | 4,601.303μs | 4,534.540μs | 4,684.278μs | 4,875.700μs | 131.146μs | ±2.80% |
| benchDynamicRoutes | GET Method,Host,Worst Case     | 3.823mb  | 1,724.124μs | 1,718.830μs | 1,752.134μs | 1,806.100μs | 38.449μs  | ±2.19% |
| benchDynamicRoutes | GET Method,Invalid Method      | 3.821mb  | 926.968μs   | 872.220μs   | 907.970μs   | 941.640μs   | 28.559μs  | ±3.15% |
| benchDynamicRoutes | ALL Methods,Invalid Method     | 3.823mb  | 977.172μs   | 924.010μs   | 964.788μs   | 1,002.980μs | 29.174μs  | ±3.02% |
| benchDynamicRoutes | GET Method,Host,Invalid Method | 3.821mb  | 1,663.346μs | 1,626.430μs | 1,664.532μs | 1,704.380μs | 24.825μs  | ±1.49% |
| benchOtherRoutes   | GET Method,Non Existent        | 3.821mb  | 932.819μs   | 886.290μs   | 925.038μs   | 951.790μs   | 22.631μs  | ±2.45% |
| benchOtherRoutes   | ALL Methods,Non Existent       | 3.823mb  | 932.963μs   | 901.790μs   | 929.418μs   | 952.040μs   | 16.270μs  | ±1.75% |
| benchOtherRoutes   | GET Method,Host,Non Existent   | 3.821mb  | 1,656.362μs | 1,642.220μs | 1,678.080μs | 1,734.870μs | 36.191μs  | ±2.16% |
+--------------------+--------------------------------+----------+-------------+-------------+-------------+-------------+-----------+--------+

FastRoute
+--------------------+----------------------------+----------+----------+----------+----------+----------+---------+--------+
| subject            | set                        | mem_peak | mode     | best     | mean     | worst    | stdev   | rstdev |
+--------------------+----------------------------+----------+----------+----------+----------+----------+---------+--------+
| benchStaticRoutes  | GET Method,Best Case       | 3.821mb  | 0.286μs  | 0.270μs  | 0.280μs  | 0.290μs  | 0.009μs | ±3.19% |
| benchStaticRoutes  | ALL Methods,Best Case      | 3.823mb  | 1.006μs  | 0.990μs  | 1.020μs  | 1.070μs  | 0.028μs | ±2.77% |
| benchStaticRoutes  | GET Method,Average Case    | 3.821mb  | 0.276μs  | 0.270μs  | 0.278μs  | 0.290μs  | 0.007μs | ±2.69% |
| benchStaticRoutes  | ALL Methods,Average Case   | 3.823mb  | 1.047μs  | 1.030μs  | 1.060μs  | 1.100μs  | 0.028μs | ±2.60% |
| benchStaticRoutes  | GET Method,Worst Case      | 3.821mb  | 0.260μs  | 0.250μs  | 0.260μs  | 0.270μs  | 0.009μs | ±3.44% |
| benchStaticRoutes  | ALL Methods,Worst Case     | 3.823mb  | 1.012μs  | 0.990μs  | 1.034μs  | 1.080μs  | 0.035μs | ±3.38% |
| benchStaticRoutes  | GET Method,Invalid Method  | 3.821mb  | 13.562μs | 13.360μs | 13.714μs | 14.300μs | 0.328μs | ±2.39% |
| benchStaticRoutes  | ALL Methods,Invalid Method | 3.823mb  | 12.969μs | 12.750μs | 13.128μs | 13.740μs | 0.345μs | ±2.63% |
| benchDynamicRoutes | GET Method,Best Case       | 3.821mb  | 0.820μs  | 0.770μs  | 0.808μs  | 0.840μs  | 0.025μs | ±3.07% |
| benchDynamicRoutes | ALL Methods,Best Case      | 3.823mb  | 4.033μs  | 3.990μs  | 4.062μs  | 4.180μs  | 0.067μs | ±1.64% |
| benchDynamicRoutes | GET Method,Average Case    | 3.821mb  | 2.672μs  | 2.580μs  | 2.688μs  | 2.790μs  | 0.074μs | ±2.77% |
| benchDynamicRoutes | ALL Methods,Average Case   | 3.823mb  | 18.676μs | 18.440μs | 18.748μs | 19.140μs | 0.236μs | ±1.26% |
| benchDynamicRoutes | GET Method,Worst Case      | 3.821mb  | 5.892μs  | 5.800μs  | 5.948μs  | 6.190μs  | 0.133μs | ±2.23% |
| benchDynamicRoutes | ALL Methods,Worst Case     | 3.823mb  | 40.126μs | 37.550μs | 39.208μs | 40.590μs | 1.281μs | ±3.27% |
| benchDynamicRoutes | GET Method,Invalid Method  | 3.821mb  | 40.241μs | 39.010μs | 39.784μs | 40.450μs | 0.630μs | ±1.58% |
| benchDynamicRoutes | ALL Methods,Invalid Method | 3.823mb  | 42.587μs | 41.260μs | 42.940μs | 45.070μs | 1.262μs | ±2.94% |
| benchOtherRoutes   | GET Method,Non Existent    | 3.821mb  | 12.803μs | 12.700μs | 13.032μs | 13.430μs | 0.317μs | ±2.43% |
| benchOtherRoutes   | ALL Methods,Non Existent   | 3.823mb  | 12.709μs | 12.450μs | 12.748μs | 13.150μs | 0.263μs | ±2.07% |
+--------------------+----------------------------+----------+----------+----------+----------+----------+---------+--------+

AuraRouter
+--------------------+--------------------------------+----------+--------------+--------------+--------------+--------------+-----------+--------+
| subject            | set                            | mem_peak | mode         | best         | mean         | worst        | stdev     | rstdev |
+--------------------+--------------------------------+----------+--------------+--------------+--------------+--------------+-----------+--------+
| benchStaticRoutes  | GET Method,Best Case           | 3.821mb  | 54.793μs     | 52.230μs     | 54.214μs     | 55.290μs     | 1.107μs   | ±2.04% |
| benchStaticRoutes  | ALL Methods,Best Case          | 3.823mb  | 243.707μs    | 230.300μs    | 239.932μs    | 247.600μs    | 6.371μs   | ±2.66% |
| benchStaticRoutes  | GET Method,Host,Best Case      | 3.821mb  | 64.035μs     | 62.990μs     | 64.740μs     | 67.160μs     | 1.459μs   | ±2.25% |
| benchStaticRoutes  | GET Method,Average Case        | 3.821mb  | 2,745.184μs  | 2,713.730μs  | 2,792.358μs  | 2,882.920μs  | 71.894μs  | ±2.57% |
| benchStaticRoutes  | ALL Methods,Average Case       | 3.823mb  | 14,005.508μs | 13,279.940μs | 13,782.694μs | 14,195.410μs | 368.621μs | ±2.67% |
| benchStaticRoutes  | GET Method,Host,Average Case   | 3.821mb  | 3,607.561μs  | 3,537.090μs  | 3,665.086μs  | 3,809.900μs  | 107.734μs | ±2.94% |
| benchStaticRoutes  | GET Method,Worst Case          | 3.821mb  | 5,214.406μs  | 5,037.340μs  | 5,155.040μs  | 5,244.390μs  | 84.389μs  | ±1.64% |
| benchStaticRoutes  | ALL Methods,Worst Case         | 3.823mb  | 26,402.503μs | 25,967.860μs | 26,559.110μs | 27,161.960μs | 436.204μs | ±1.64% |
| benchStaticRoutes  | GET Method,Host,Worst Case     | 3.821mb  | 7,094.038μs  | 6,719.690μs  | 6,970.058μs  | 7,167.680μs  | 181.538μs | ±2.60% |
| benchStaticRoutes  | GET Method,Invalid Method      | 3.821mb  | 5,139.885μs  | 4,958.070μs  | 5,132.704μs  | 5,298.390μs  | 109.982μs | ±2.14% |
| benchStaticRoutes  | ALL Methods,Invalid Method     | 3.823mb  | 5,126.799μs  | 4,830.830μs  | 5,020.504μs  | 5,172.230μs  | 146.568μs | ±2.92% |
| benchStaticRoutes  | GET Method,Host,Invalid Method | 3.822mb  | 7,120.350μs  | 6,915.370μs  | 7,089.802μs  | 7,222.540μs  | 102.207μs | ±1.44% |
| benchDynamicRoutes | GET Method,Best Case           | 3.821mb  | 55.321μs     | 54.260μs     | 55.704μs     | 57.670μs     | 1.191μs   | ±2.14% |
| benchDynamicRoutes | ALL Methods,Best Case          | 3.823mb  | 256.985μs    | 246.350μs    | 256.464μs    | 265.970μs    | 6.325μs   | ±2.47% |
| benchDynamicRoutes | GET Method,Host,Best Case      | 3.821mb  | 68.874μs     | 67.930μs     | 69.776μs     | 73.010μs     | 1.836μs   | ±2.63% |
| benchDynamicRoutes | GET Method,Average Case        | 3.821mb  | 2,558.723μs  | 2,521.200μs  | 2,590.054μs  | 2,652.530μs  | 54.544μs  | ±2.11% |
| benchDynamicRoutes | ALL Methods,Average Case       | 3.823mb  | 14,308.735μs | 13,567.750μs | 14,163.646μs | 14,564.180μs | 344.039μs | ±2.43% |
| benchDynamicRoutes | GET Method,Host,Average Case   | 3.821mb  | 3,772.651μs  | 3,687.200μs  | 3,782.654μs  | 3,893.170μs  | 65.586μs  | ±1.73% |
| benchDynamicRoutes | GET Method,Worst Case          | 3.821mb  | 5,430.711μs  | 5,316.140μs  | 5,404.748μs  | 5,452.610μs  | 50.416μs  | ±0.93% |
| benchDynamicRoutes | ALL Methods,Worst Case         | 3.823mb  | 26,632.882μs | 25,849.300μs | 26,649.334μs | 27,444.560μs | 523.784μs | ±1.97% |
| benchDynamicRoutes | GET Method,Host,Worst Case     | 3.821mb  | 7,505.935μs  | 7,425.940μs  | 7,478.166μs  | 7,528.390μs  | 41.556μs  | ±0.56% |
| benchDynamicRoutes | GET Method,Invalid Method      | 3.821mb  | 4,949.197μs  | 4,867.980μs  | 5,016.474μs  | 5,182.390μs  | 118.525μs | ±2.36% |
| benchDynamicRoutes | ALL Methods,Invalid Method     | 3.823mb  | 5,078.449μs  | 4,902.730μs  | 5,067.576μs  | 5,216.690μs  | 101.192μs | ±2.00% |
| benchDynamicRoutes | GET Method,Host,Invalid Method | 3.822mb  | 7,297.310μs  | 6,890.180μs  | 7,154.220μs  | 7,375.130μs  | 207.367μs | ±2.90% |
| benchOtherRoutes   | GET Method,Non Existent        | 3.821mb  | 5,339.672μs  | 5,239.260μs  | 5,352.764μs  | 5,454.850μs  | 76.685μs  | ±1.43% |
| benchOtherRoutes   | ALL Methods,Non Existent       | 3.823mb  | 5,291.087μs  | 5,186.570μs  | 5,277.878μs  | 5,352.950μs  | 57.730μs  | ±1.09% |
| benchOtherRoutes   | GET Method,Host,Non Existent   | 3.822mb  | 7,066.513μs  | 6,826.970μs  | 6,998.780μs  | 7,112.300μs  | 107.661μs | ±1.54% |
+--------------------+--------------------------------+----------+--------------+--------------+--------------+--------------+-----------+--------+

Benchmark runned with file cache support.

FlightRoutingCached
+--------------------+--------------------------------+----------+----------+----------+----------+----------+---------+--------+
| subject            | set                            | mem_peak | mode     | best     | mean     | worst    | stdev   | rstdev |
+--------------------+--------------------------------+----------+----------+----------+----------+----------+---------+--------+
| benchStaticRoutes  | GET Method,Best Case           | 4.616mb  | 1.821μs  | 1.710μs  | 1.792μs  | 1.870μs  | 0.060μs | ±3.34% |
| benchStaticRoutes  | ALL Methods,Best Case          | 4.618mb  | 3.500μs  | 3.360μs  | 3.474μs  | 3.550μs  | 0.072μs | ±2.06% |
| benchStaticRoutes  | GET Method,Host,Best Case      | 4.616mb  | 2.331μs  | 2.250μs  | 2.310μs  | 2.360μs  | 0.039μs | ±1.71% |
| benchStaticRoutes  | GET Method,Average Case        | 4.616mb  | 1.726μs  | 1.650μs  | 1.702μs  | 1.740μs  | 0.035μs | ±2.08% |
| benchStaticRoutes  | ALL Methods,Average Case       | 4.618mb  | 3.849μs  | 3.680μs  | 3.824μs  | 3.930μs  | 0.082μs | ±2.14% |
| benchStaticRoutes  | GET Method,Host,Average Case   | 4.616mb  | 2.702μs  | 2.660μs  | 2.712μs  | 2.780μs  | 0.041μs | ±1.52% |
| benchStaticRoutes  | GET Method,Worst Case          | 4.616mb  | 1.652μs  | 1.580μs  | 1.640μs  | 1.680μs  | 0.033μs | ±2.04% |
| benchStaticRoutes  | ALL Methods,Worst Case         | 4.618mb  | 4.134μs  | 3.850μs  | 4.050μs  | 4.200μs  | 0.134μs | ±3.30% |
| benchStaticRoutes  | GET Method,Host,Worst Case     | 4.616mb  | 2.429μs  | 2.310μs  | 2.428μs  | 2.540μs  | 0.076μs | ±3.13% |
| benchStaticRoutes  | GET Method,Invalid Method      | 4.616mb  | 2.914μs  | 2.830μs  | 2.926μs  | 3.040μs  | 0.067μs | ±2.29% |
| benchStaticRoutes  | ALL Methods,Invalid Method     | 4.618mb  | 3.056μs  | 3.010μs  | 3.070μs  | 3.150μs  | 0.046μs | ±1.50% |
| benchStaticRoutes  | GET Method,Host,Invalid Method | 4.616mb  | 3.256μs  | 3.240μs  | 3.294μs  | 3.440μs  | 0.076μs | ±2.32% |
| benchDynamicRoutes | GET Method,Best Case           | 4.616mb  | 3.089μs  | 2.930μs  | 3.084μs  | 3.230μs  | 0.098μs | ±3.19% |
| benchDynamicRoutes | ALL Methods,Best Case          | 4.618mb  | 9.007μs  | 8.740μs  | 9.058μs  | 9.430μs  | 0.232μs | ±2.56% |
| benchDynamicRoutes | GET Method,Host,Best Case      | 4.616mb  | 3.205μs  | 3.150μs  | 3.278μs  | 3.440μs  | 0.113μs | ±3.45% |
| benchDynamicRoutes | GET Method,Average Case        | 4.616mb  | 5.659μs  | 5.600μs  | 5.712μs  | 5.890μs  | 0.103μs | ±1.80% |
| benchDynamicRoutes | ALL Methods,Average Case       | 4.618mb  | 17.811μs | 17.280μs | 17.688μs | 17.960μs | 0.244μs | ±1.38% |
| benchDynamicRoutes | GET Method,Host,Average Case   | 4.616mb  | 37.981μs | 37.040μs | 38.160μs | 39.130μs | 0.762μs | ±2.00% |
| benchDynamicRoutes | GET Method,Worst Case          | 4.616mb  | 5.156μs  | 4.810μs  | 5.030μs  | 5.200μs  | 0.175μs | ±3.47% |
| benchDynamicRoutes | ALL Methods,Worst Case         | 4.618mb  | 15.378μs | 15.310μs | 15.532μs | 16.100μs | 0.301μs | ±1.94% |
| benchDynamicRoutes | GET Method,Host,Worst Case     | 4.616mb  | 77.806μs | 74.620μs | 77.792μs | 80.740μs | 2.068μs | ±2.66% |
| benchDynamicRoutes | GET Method,Invalid Method      | 4.616mb  | 5.124μs  | 4.880μs  | 5.076μs  | 5.180μs  | 0.105μs | ±2.07% |
| benchDynamicRoutes | ALL Methods,Invalid Method     | 4.618mb  | 5.234μs  | 5.070μs  | 5.200μs  | 5.260μs  | 0.069μs | ±1.33% |
| benchDynamicRoutes | GET Method,Host,Invalid Method | 4.616mb  | 84.718μs | 82.460μs | 86.244μs | 89.540μs | 2.796μs | ±3.24% |
| benchOtherRoutes   | GET Method,Non Existent        | 4.616mb  | 2.912μs  | 2.880μs  | 2.936μs  | 3.030μs  | 0.052μs | ±1.77% |
| benchOtherRoutes   | ALL Methods,Non Existent       | 4.618mb  | 3.259μs  | 3.110μs  | 3.254μs  | 3.390μs  | 0.091μs | ±2.79% |
| benchOtherRoutes   | GET Method,Host,Non Existent   | 4.616mb  | 62.880μs | 60.720μs | 63.544μs | 66.440μs | 2.012μs | ±3.17% |
+--------------------+--------------------------------+----------+----------+----------+----------+----------+---------+--------+

SymfonyRouterCached
+--------------------+--------------------------------+----------+-----------+-----------+-----------+-----------+---------+--------+
| subject            | set                            | mem_peak | mode      | best      | mean      | worst     | stdev   | rstdev |
+--------------------+--------------------------------+----------+-----------+-----------+-----------+-----------+---------+--------+
| benchStaticRoutes  | GET Method,Best Case           | 6.719mb  | 0.945μs   | 0.910μs   | 0.938μs   | 0.950μs   | 0.015μs | ±1.57% |
| benchStaticRoutes  | ALL Methods,Best Case          | 6.721mb  | 3.884μs   | 3.850μs   | 3.912μs   | 3.990μs   | 0.052μs | ±1.32% |
| benchStaticRoutes  | GET Method,Host,Best Case      | 6.720mb  | 1.079μs   | 1.070μs   | 1.090μs   | 1.110μs   | 0.017μs | ±1.54% |
| benchStaticRoutes  | GET Method,Average Case        | 6.719mb  | 0.699μs   | 0.690μs   | 0.702μs   | 0.720μs   | 0.010μs | ±1.40% |
| benchStaticRoutes  | ALL Methods,Average Case       | 6.721mb  | 3.499μs   | 3.290μs   | 3.462μs   | 3.600μs   | 0.105μs | ±3.04% |
| benchStaticRoutes  | GET Method,Host,Average Case   | 6.720mb  | 0.959μs   | 0.920μs   | 0.954μs   | 0.980μs   | 0.021μs | ±2.16% |
| benchStaticRoutes  | GET Method,Worst Case          | 6.719mb  | 0.745μs   | 0.740μs   | 0.760μs   | 0.790μs   | 0.021μs | ±2.76% |
| benchStaticRoutes  | ALL Methods,Worst Case         | 6.721mb  | 3.863μs   | 3.800μs   | 3.912μs   | 4.050μs   | 0.090μs | ±2.31% |
| benchStaticRoutes  | GET Method,Host,Worst Case     | 6.720mb  | 0.865μs   | 0.860μs   | 0.872μs   | 0.900μs   | 0.015μs | ±1.69% |
| benchStaticRoutes  | GET Method,Invalid Method      | 6.720mb  | 36.773μs  | 35.490μs  | 36.520μs  | 36.970μs  | 0.530μs | ±1.45% |
| benchStaticRoutes  | ALL Methods,Invalid Method     | 6.722mb  | 32.881μs  | 32.040μs  | 33.122μs  | 34.540μs  | 0.836μs | ±2.53% |
| benchStaticRoutes  | GET Method,Host,Invalid Method | 6.720mb  | 44.817μs  | 44.340μs  | 45.184μs  | 46.010μs  | 0.671μs | ±1.49% |
| benchDynamicRoutes | GET Method,Best Case           | 6.719mb  | 1.418μs   | 1.330μs   | 1.398μs   | 1.440μs   | 0.040μs | ±2.84% |
| benchDynamicRoutes | ALL Methods,Best Case          | 6.721mb  | 6.701μs   | 6.580μs   | 6.796μs   | 7.030μs   | 0.167μs | ±2.46% |
| benchDynamicRoutes | GET Method,Host,Best Case      | 6.720mb  | 1.537μs   | 1.440μs   | 1.508μs   | 1.560μs   | 0.045μs | ±3.01% |
| benchDynamicRoutes | GET Method,Average Case        | 6.719mb  | 13.792μs  | 13.070μs  | 13.586μs  | 13.910μs  | 0.324μs | ±2.38% |
| benchDynamicRoutes | ALL Methods,Average Case       | 6.721mb  | 57.988μs  | 57.480μs  | 58.800μs  | 60.330μs  | 1.194μs | ±2.03% |
| benchDynamicRoutes | GET Method,Host,Average Case   | 6.720mb  | 16.632μs  | 16.520μs  | 16.870μs  | 17.440μs  | 0.362μs | ±2.14% |
| benchDynamicRoutes | GET Method,Worst Case          | 6.719mb  | 37.107μs  | 36.330μs  | 37.162μs  | 38.080μs  | 0.555μs | ±1.49% |
| benchDynamicRoutes | ALL Methods,Worst Case         | 6.721mb  | 166.268μs | 160.830μs | 167.080μs | 174.000μs | 4.484μs | ±2.68% |
| benchDynamicRoutes | GET Method,Host,Worst Case     | 6.720mb  | 47.514μs  | 45.390μs  | 47.084μs  | 47.760μs  | 0.875μs | ±1.86% |
| benchDynamicRoutes | GET Method,Invalid Method      | 6.720mb  | 90.960μs  | 86.030μs  | 89.990μs  | 92.590μs  | 2.273μs | ±2.53% |
| benchDynamicRoutes | ALL Methods,Invalid Method     | 6.722mb  | 96.603μs  | 94.860μs  | 97.972μs  | 102.410μs | 2.669μs | ±2.72% |
| benchDynamicRoutes | GET Method,Host,Invalid Method | 6.720mb  | 115.998μs | 111.010μs | 115.218μs | 118.420μs | 2.469μs | ±2.14% |
| benchOtherRoutes   | GET Method,Non Existent        | 6.720mb  | 25.533μs  | 24.790μs  | 25.824μs  | 26.810μs  | 0.734μs | ±2.84% |
| benchOtherRoutes   | ALL Methods,Non Existent       | 6.722mb  | 21.622μs  | 20.900μs  | 21.938μs  | 22.950μs  | 0.768μs | ±3.50% |
| benchOtherRoutes   | GET Method,Host,Non Existent   | 6.720mb  | 33.683μs  | 31.660μs  | 33.008μs  | 34.010μs  | 0.955μs | ±2.89% |
+--------------------+--------------------------------+----------+-----------+-----------+-----------+-----------+---------+--------+

FastRouteCached
+--------------------+----------------------------+----------+----------+----------+----------+----------+---------+--------+
| subject            | set                        | mem_peak | mode     | best     | mean     | worst    | stdev   | rstdev |
+--------------------+----------------------------+----------+----------+----------+----------+----------+---------+--------+
| benchStaticRoutes  | GET Method,Best Case       | 6.516mb  | 0.251μs  | 0.250μs  | 0.258μs  | 0.270μs  | 0.010μs | ±3.80% |
| benchStaticRoutes  | ALL Methods,Best Case      | 6.518mb  | 0.911μs  | 0.890μs  | 0.924μs  | 0.970μs  | 0.029μs | ±3.11% |
| benchStaticRoutes  | GET Method,Average Case    | 6.516mb  | 0.250μs  | 0.240μs  | 0.246μs  | 0.250μs  | 0.005μs | ±1.99% |
| benchStaticRoutes  | ALL Methods,Average Case   | 6.518mb  | 1.135μs  | 1.080μs  | 1.132μs  | 1.180μs  | 0.032μs | ±2.82% |
| benchStaticRoutes  | GET Method,Worst Case      | 6.516mb  | 0.250μs  | 0.250μs  | 0.250μs  | 0.250μs  | 0.000μs | ±0.00% |
| benchStaticRoutes  | ALL Methods,Worst Case     | 6.518mb  | 0.905μs  | 0.900μs  | 0.912μs  | 0.940μs  | 0.015μs | ±1.61% |
| benchStaticRoutes  | GET Method,Invalid Method  | 6.516mb  | 7.120μs  | 7.060μs  | 7.166μs  | 7.350μs  | 0.103μs | ±1.44% |
| benchStaticRoutes  | ALL Methods,Invalid Method | 6.518mb  | 9.133μs  | 8.710μs  | 9.008μs  | 9.240μs  | 0.200μs | ±2.22% |
| benchDynamicRoutes | GET Method,Best Case       | 6.516mb  | 0.725μs  | 0.720μs  | 0.740μs  | 0.770μs  | 0.021μs | ±2.83% |
| benchDynamicRoutes | ALL Methods,Best Case      | 6.518mb  | 3.335μs  | 3.320μs  | 3.376μs  | 3.480μs  | 0.063μs | ±1.88% |
| benchDynamicRoutes | GET Method,Average Case    | 6.516mb  | 2.883μs  | 2.850μs  | 2.912μs  | 3.020μs  | 0.060μs | ±2.05% |
| benchDynamicRoutes | ALL Methods,Average Case   | 6.518mb  | 16.440μs | 16.240μs | 16.628μs | 17.120μs | 0.336μs | ±2.02% |
| benchDynamicRoutes | GET Method,Worst Case      | 6.516mb  | 5.713μs  | 5.590μs  | 5.752μs  | 5.980μs  | 0.126μs | ±2.20% |
| benchDynamicRoutes | ALL Methods,Worst Case     | 6.518mb  | 29.339μs | 28.920μs | 29.786μs | 30.800μs | 0.742μs | ±2.49% |
| benchDynamicRoutes | GET Method,Invalid Method  | 6.516mb  | 31.913μs | 30.920μs | 32.068μs | 33.360μs | 0.804μs | ±2.51% |
| benchDynamicRoutes | ALL Methods,Invalid Method | 6.518mb  | 27.376μs | 26.850μs | 27.960μs | 29.230μs | 0.963μs | ±3.45% |
| benchOtherRoutes   | GET Method,Non Existent    | 6.516mb  | 7.470μs  | 7.280μs  | 7.518μs  | 7.750μs  | 0.169μs | ±2.25% |
| benchOtherRoutes   | ALL Methods,Non Existent   | 6.518mb  | 8.169μs  | 7.720μs  | 8.058μs  | 8.340μs  | 0.236μs | ±2.93% |
+--------------------+----------------------------+----------+----------+----------+----------+----------+---------+--------+