|
2 | 2 |
|
3 | 3 | ## Performance Overview |
4 | 4 |
|
5 | | -Benchmarks run on **Apple M3 Pro** with **Deno 2.5.4** |
| 5 | +Benchmarks run on **Apple M3 Pro** with **Deno 2.8.1** |
6 | 6 |
|
7 | 7 | ### Route Lookup Performance |
8 | 8 |
|
9 | | -| Route Type | Average Time | Operations/sec | Min | Max | p75 | p99 | |
10 | | -| ------------- | ------------ | -------------- | -------- | -------- | -------- | -------- | |
11 | | -| **Static** | 12.7 ns | 78,490,000 | 12.0 ns | 32.2 ns | 13.0 ns | 16.8 ns | |
12 | | -| **Parameter** | 79.5 ns | 12,580,000 | 74.5 ns | 106.1 ns | 80.9 ns | 94.3 ns | |
13 | | -| **Nested** | 119.5 ns | 8,372,000 | 115.2 ns | 144.7 ns | 121.2 ns | 131.1 ns | |
14 | | -| **No Match** | 59.3 ns | 16,860,000 | 56.4 ns | 70.0 ns | 60.1 ns | 67.2 ns | |
| 9 | +| Route Type | Average Time | Operations/sec | Min | Max | p75 | p99 | |
| 10 | +| --------------------- | ------------ | -------------- | -------- | -------- | -------- | -------- | |
| 11 | +| **Static** | 12.1 ns | 82,940,000 | 11.0 ns | 19.2 ns | 12.1 ns | 13.7 ns | |
| 12 | +| **Named Parameter** | 80.3 ns | 12,460,000 | 72.2 ns | 103.7 ns | 81.3 ns | 88.9 ns | |
| 13 | +| **Nested Parameter** | 122.9 ns | 8,139,000 | 111.5 ns | 158.8 ns | 124.3 ns | 133.8 ns | |
| 14 | +| **Regex Parameter** | 296.5 ns | 3,373,000 | 274.8 ns | 333.9 ns | 302.1 ns | 313.1 ns | |
| 15 | +| **Single Wildcard** | 115.7 ns | 8,646,000 | 104.3 ns | 149.2 ns | 117.0 ns | 127.9 ns | |
| 16 | +| **Catch-all Globstar**| 151.4 ns | 6,603,000 | 136.9 ns | 180.7 ns | 154.0 ns | 162.2 ns | |
| 17 | +| **Any-method** | 23.4 ns | 42,770,000 | 21.2 ns | 62.8 ns | 23.8 ns | 27.6 ns | |
| 18 | +| **Without Params** | 80.3 ns | 12,460,000 | 69.5 ns | 230.0 ns | 79.6 ns | 104.3 ns | |
| 19 | +| **No Match** | 64.5 ns | 15,510,000 | 57.3 ns | 120.0 ns | 65.6 ns | 75.0 ns | |
15 | 20 |
|
16 | 21 | ### Key Metrics |
17 | 22 |
|
18 | | -- **Static Routes**: ~13 ns - Direct O(1) hash lookup |
19 | | -- **Parameter Routes**: ~80 ns - Tree traversal + param extraction |
20 | | -- **Nested Routes**: ~120 ns - Multiple segments with params |
21 | | -- **No Match**: ~60 ns - Tree traversal without match |
| 23 | +- **Static Routes**: ~12 ns - Direct O(1) hash lookup |
| 24 | +- **Named Parameter**: ~80 ns - Tree traversal + param extraction |
| 25 | +- **Nested Parameter**: ~123 ns - Multiple segments with params |
| 26 | +- **Regex Parameter**: ~297 ns - Tree traversal + RegExp validation |
| 27 | +- **Single Wildcard**: ~116 ns - Tree traversal with wildcard match |
| 28 | +- **Catch-all Globstar**: ~151 ns - Deep path with globstar capture |
| 29 | +- **Any-method**: ~23 ns - Static cache hit with fallback method |
| 30 | +- **Without Params**: ~80 ns - Param route skipping extraction |
| 31 | +- **No Match**: ~65 ns - Tree traversal without match |
22 | 32 |
|
23 | 33 | ## Running Benchmarks |
24 | 34 |
|
|
0 commit comments