@@ -7,7 +7,7 @@ conditions.
7
7
8
8
## Environment
9
9
10
- - Node.js 22.3.0
10
+ - Node.js 22.3.1
11
11
- System: macOS Sequoia 15.3.1 / Darwin 24.3.0 arm64 kernel
12
12
- CPU: Apple M2 (8) @ 3.50 GHz
13
13
- Machine: MacBook Air (M2, 2022)
@@ -25,40 +25,45 @@ autocannon -b '{"a":1}' -H "Content-Type=application/json" localhost:3002 # or 3
25
25
body-parser result:
26
26
27
27
```
28
- ┌─────────┬──────┬──────┬───────┬──────┬─────────┬─────────┬──────── ┐
29
- │ Stat │ 2.5% │ 50% │ 97.5% │ 99% │ Avg │ Stdev │ Max │
30
- ├─────────┼──────┼──────┼───────┼──────┼─────────┼─────────┼──────── ┤
31
- │ Latency │ 0 ms │ 0 ms │ 0 ms │ 0 ms │ 0.01 ms │ 0.91 ms │ 272 ms │
32
- └─────────┴──────┴──────┴───────┴──────┴─────────┴─────────┴──────── ┘
33
- ┌───────────┬─────────┬─────────┬─────────┬────────┬─ ──────────┬──────────┬─────────┐
34
- │ Stat │ 1% │ 2.5% │ 50% │ 97.5% │ Avg │ Stdev │ Min │
35
- ├───────────┼─────────┼─────────┼─────────┼────────┼─ ──────────┼──────────┼─────────┤
36
- │ Req/Sec │ 30,767 │ 30,767 │ 41,343 │ 44,191 │ 39,307.64 │ 4,333.33 │ 30,762 │
37
- ├───────────┼─────────┼─────────┼─────────┼────────┼─ ──────────┼──────────┼─────────┤
38
- │ Bytes/Sec │ 3.97 MB │ 3.97 MB │ 5.33 MB │ 5.7 MB │ 5.07 MB │ 560 kB │ 3.97 MB │
39
- └───────────┴─────────┴─────────┴─────────┴────────┴─ ──────────┴──────────┴─────────┘
28
+ ┌─────────┬──────┬──────┬───────┬──────┬─────────┬─────────┬───────┐
29
+ │ Stat │ 2.5% │ 50% │ 97.5% │ 99% │ Avg │ Stdev │ Max │
30
+ ├─────────┼──────┼──────┼───────┼──────┼─────────┼─────────┼───────┤
31
+ │ Latency │ 0 ms │ 0 ms │ 0 ms │ 0 ms │ 0.01 ms │ 0.12 ms │ 22 ms │
32
+ └─────────┴──────┴──────┴───────┴──────┴─────────┴─────────┴───────┘
33
+ ┌───────────┬─────────┬─────────┬─────────┬─────────┬ ──────────┬──────────┬─────────┐
34
+ │ Stat │ 1% │ 2.5% │ 50% │ 97.5% │ Avg │ Stdev │ Min │
35
+ ├───────────┼─────────┼─────────┼─────────┼─────────┼ ──────────┼──────────┼─────────┤
36
+ │ Req/Sec │ 54,591 │ 54,591 │ 61,759 │ 63,871 │ 61,436.8 │ 2,478.39 │ 54,589 │
37
+ ├───────────┼─────────┼─────────┼─────────┼─────────┼ ──────────┼──────────┼─────────┤
38
+ │ Bytes/Sec │ 7.05 MB │ 7.05 MB │ 7.97 MB │ 8.24 MB │ 7.93 MB │ 319 kB │ 7.04 MB │
39
+ └───────────┴─────────┴─────────┴─────────┴─────────┴ ──────────┴──────────┴─────────┘
40
40
41
41
Req/Bytes counts sampled once per second.
42
- # of samples: 11
42
+ # of samples: 10
43
43
44
- 432k requests in 11.03s, 55.8 MB read
44
+ 614k requests in 10.01s, 79.3 MB read
45
45
```
46
46
47
47
milliparsec result:
48
48
49
49
```
50
- ┌─────────┬──────┬──────┬───────┬──────┬─────────┬─────────┬────────┐
51
- │ Stat │ 2.5% │ 50% │ 97.5% │ 99% │ Avg │ Stdev │ Max │
52
- ├─────────┼──────┼──────┼───────┼──────┼─────────┼─────────┼────────┤
53
- │ Latency │ 0 ms │ 0 ms │ 0 ms │ 0 ms │ 0.01 ms │ 0.68 ms │ 255 ms │
54
- └─────────┴──────┴──────┴───────┴──────┴─────────┴─────────┴────────┘
55
- ┌───────────┬─────────┬─────────┬─────────┬─────────┬──────────┬──────────┬─────────┐
56
- │ Stat │ 1% │ 2.5% │ 50% │ 97.5% │ Avg │ Stdev │ Min │
57
- ├───────────┼─────────┼─────────┼─────────┼─────────┼──────────┼──────────┼─────────┤
58
- │ Req/Sec │ 46,047 │ 46,047 │ 59,391 │ 64,255 │ 58,285.1 │ 4,625.15 │ 46,025 │
59
- ├───────────┼─────────┼─────────┼─────────┼─────────┼──────────┼──────────┼─────────┤
60
- │ Bytes/Sec │ 5.62 MB │ 5.62 MB │ 7.25 MB │ 7.84 MB │ 7.11 MB │ 565 kB │ 5.62 MB │
61
- └───────────┴─────────┴─────────┴─────────┴─────────┴──────────┴──────────┴─────────┘
50
+ ┌─────────┬──────┬──────┬───────┬──────┬─────────┬─────────┬───────┐
51
+ │ Stat │ 2.5% │ 50% │ 97.5% │ 99% │ Avg │ Stdev │ Max │
52
+ ├─────────┼──────┼──────┼───────┼──────┼─────────┼─────────┼───────┤
53
+ │ Latency │ 0 ms │ 0 ms │ 0 ms │ 0 ms │ 0.01 ms │ 0.04 ms │ 11 ms │
54
+ └─────────┴──────┴──────┴───────┴──────┴─────────┴─────────┴───────┘
55
+ ┌───────────┬─────────┬─────────┬─────────┬─────────┬───────────┬──────────┬─────────┐
56
+ │ Stat │ 1% │ 2.5% │ 50% │ 97.5% │ Avg │ Stdev │ Min │
57
+ ├───────────┼─────────┼─────────┼─────────┼─────────┼───────────┼──────────┼─────────┤
58
+ │ Req/Sec │ 79,999 │ 79,999 │ 88,127 │ 88,767 │ 87,095.28 │ 2,370.01 │ 79,966 │
59
+ ├───────────┼─────────┼─────────┼─────────┼─────────┼───────────┼──────────┼─────────┤
60
+ │ Bytes/Sec │ 9.76 MB │ 9.76 MB │ 10.7 MB │ 10.8 MB │ 10.6 MB │ 289 kB │ 9.76 MB │
61
+ └───────────┴─────────┴─────────┴─────────┴─────────┴───────────┴──────────┴─────────┘
62
+
63
+ Req/Bytes counts sampled once per second.
64
+ # of samples: 11
65
+
66
+ 958k requests in 11.01s, 117 MB read
62
67
63
68
Req/Bytes counts sampled once per second.
64
69
# of samples: 11
@@ -68,7 +73,7 @@ Req/Bytes counts sampled once per second.
68
73
69
74
### Verdict
70
75
71
- milliparsec, on average, is ~ 30- 40% faster.
76
+ milliparsec, on average, is ~ 40% faster.
72
77
73
78
## Multipart with files
74
79
@@ -83,47 +88,47 @@ autocannon -m POST --form '{ "file": { "type": "file", "path": "./file.txt" }
83
88
formidable result:
84
89
85
90
```
86
- ┌─────────┬──────┬─────── ┬───────┬───────┬─────────┬─────────┬─ ───────┐
87
- │ Stat │ 2.5% │ 50% │ 97.5% │ 99% │ Avg │ Stdev │ Max │
88
- ├─────────┼──────┼─────── ┼───────┼───────┼─────────┼─────────┼─ ───────┤
89
- │ Latency │ 1 ms │ 10 ms │ 29 ms │ 33 ms │ 11.1 ms │ 9.48 ms │ 261 ms │
90
- └─────────┴──────┴─────── ┴───────┴───────┴─────────┴─────────┴─ ───────┘
91
- ┌───────────┬───────┬───────┬────────┬────────┬────────┬────────┬ ───────┐
92
- │ Stat │ 1% │ 2.5% │ 50% │ 97.5% │ Avg │ Stdev │ Min │
93
- ├───────────┼───────┼───────┼────────┼────────┼────────┼────────┼ ───────┤
94
- │ Req/Sec │ 500 │ 500 │ 630 │ 2,339 │ 860.9 │ 526.44 │ 500 │
95
- ├───────────┼───────┼───────┼────────┼────────┼────────┼────────┼ ───────┤
96
- │ Bytes/Sec │ 99 kB │ 99 kB │ 125 kB │ 463 kB │ 170 kB │ 104 kB │ 99 kB │
97
- └───────────┴───────┴───────┴────────┴────────┴────────┴────────┴ ───────┘
91
+ ┌─────────┬──────┬──────┬───────┬───────┬─────────┬─────────┬───────┐
92
+ │ Stat │ 2.5% │ 50% │ 97.5% │ 99% │ Avg │ Stdev │ Max │
93
+ ├─────────┼──────┼──────┼───────┼───────┼─────────┼─────────┼───────┤
94
+ │ Latency │ 1 ms │ 5 ms │ 19 ms │ 26 ms │ 6.63 ms │ 5.86 ms │ 54 ms │
95
+ └─────────┴──────┴──────┴───────┴───────┴─────────┴─────────┴───────┘
96
+ ┌───────────┬──────── ┬──────── ┬────────┬────────┬────────┬──────────┬─ ───────┐
97
+ │ Stat │ 1% │ 2.5% │ 50% │ 97.5% │ Avg │ Stdev │ Min │
98
+ ├───────────┼──────── ┼──────── ┼────────┼────────┼────────┼──────────┼─ ───────┤
99
+ │ Req/Sec │ 530 │ 530 │ 775 │ 4,595 │ 1,404 │ 1,179.32 │ 530 │
100
+ ├───────────┼──────── ┼──────── ┼────────┼────────┼────────┼──────────┼─ ───────┤
101
+ │ Bytes/Sec │ 105 kB │ 105 kB │ 153 kB │ 910 kB │ 278 kB │ 233 kB │ 105 kB │
102
+ └───────────┴──────── ┴──────── ┴────────┴────────┴────────┴──────────┴─ ───────┘
98
103
99
104
Req/Bytes counts sampled once per second.
100
105
# of samples: 10
101
106
102
- 9k requests in 10.03s, 1.7 MB read
107
+ 14k requests in 10.02s, 2.78 MB read
103
108
```
104
109
105
110
milliparsec result:
106
111
107
112
```
108
- ┌─────────┬──────┬──────┬───────┬──────┬─────────┬─────────┬──────── ┐
109
- │ Stat │ 2.5% │ 50% │ 97.5% │ 99% │ Avg │ Stdev │ Max │
110
- ├─────────┼──────┼──────┼───────┼──────┼─────────┼─────────┼──────── ┤
111
- │ Latency │ 0 ms │ 0 ms │ 1 ms │ 1 ms │ 0.09 ms │ 1.39 ms │ 267 ms │
112
- └─────────┴──────┴──────┴───────┴──────┴─────────┴─────────┴──────── ┘
113
+ ┌─────────┬──────┬──────┬───────┬──────┬─────────┬─────────┬───────┐
114
+ │ Stat │ 2.5% │ 50% │ 97.5% │ 99% │ Avg │ Stdev │ Max │
115
+ ├─────────┼──────┼──────┼───────┼──────┼─────────┼─────────┼───────┤
116
+ │ Latency │ 0 ms │ 0 ms │ 0 ms │ 0 ms │ 0.02 ms │ 0.19 ms │ 20 ms │
117
+ └─────────┴──────┴──────┴───────┴──────┴─────────┴─────────┴───────┘
113
118
┌───────────┬─────────┬─────────┬─────────┬─────────┬───────────┬──────────┬─────────┐
114
119
│ Stat │ 1% │ 2.5% │ 50% │ 97.5% │ Avg │ Stdev │ Min │
115
120
├───────────┼─────────┼─────────┼─────────┼─────────┼───────────┼──────────┼─────────┤
116
- │ Req/Sec │ 8,543 │ 8,543 │ 17,775 │ 18,399 │ 16,962.55 │ 2,697.57 │ 8,537 │
121
+ │ Req/Sec │ 24,063 │ 24,063 │ 29,727 │ 30,863 │ 29,263.28 │ 1,758.94 │ 24,051 │
117
122
├───────────┼─────────┼─────────┼─────────┼─────────┼───────────┼──────────┼─────────┤
118
- │ Bytes/Sec │ 1.69 MB │ 1.69 MB │ 3.52 MB │ 3.64 MB │ 3.36 MB │ 534 kB │ 1.69 MB │
123
+ │ Bytes/Sec │ 4.76 MB │ 4.76 MB │ 5.89 MB │ 6.11 MB │ 5.79 MB │ 348 kB │ 4.76 MB │
119
124
└───────────┴─────────┴─────────┴─────────┴─────────┴───────────┴──────────┴─────────┘
120
125
121
126
Req/Bytes counts sampled once per second.
122
127
# of samples: 11
123
128
124
- 187k requests in 11.03s, 36.9 MB read
129
+ 322k requests in 11.01s, 63.7 MB read
125
130
```
126
131
127
132
### Verdict
128
133
129
- milliparsec, on average, is 10- 20x faster.
134
+ milliparsec, on average, is ~ 20x faster.
0 commit comments