Skip to content

Commit 5c7d6e6

Browse files
committed
docs: update benchmarks and readme
1 parent 94766fa commit 5c7d6e6

4 files changed

Lines changed: 37 additions & 12 deletions

File tree

README.md

Lines changed: 30 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -75,17 +75,38 @@ console.log(qs.stringify({ foo: ['bar', 'baz'] }))
7575
╔══════════════════════════════╤═════════╤═══════════════════╤═══════════╗
7676
║ Slower tests │ Samples │ Result │ Tolerance ║
7777
╟──────────────────────────────┼─────────┼───────────────────┼───────────╢
78-
║ query-string │ 10000 │ 310383.60 op/sec │ ± 1.14 % ║
79-
║ qs │ 10000 │ 354332.59 op/sec │ ± 1.23 % ║
80-
║ @aws-sdk/querystring-builder │ 10000 │ 411500.38 op/sec │ ± 1.30 % ║
81-
║ http-querystring-stringify │ 1500 │ 535883.47 op/sec │ ± 1.00 % ║
82-
║ URLSearchParams │ 10000 │ 594068.52 op/sec │ ± 1.61 % ║
83-
║ querystringparser │ 10000 │ 766081.64 op/sec │ ± 2.18 % ║
84-
║ querystringify │ 10000 │ 914083.38 op/sec │ ± 1.67 % ║
85-
║ node:querystring │ 4000 │ 1822536.85 op/sec │ ± 0.91 % ║
78+
║ query-string │ 10000 │ 286850.93 op/sec │ ± 1.28 % ║
79+
║ qs │ 10000 │ 349458.21 op/sec │ ± 1.47 % ║
80+
║ @aws-sdk/querystring-builder │ 10000 │ 393736.38 op/sec │ ± 1.78 % ║
81+
║ URLSearchParams │ 1000 │ 402765.87 op/sec │ ± 0.57 % ║
82+
║ http-querystring-stringify │ 10000 │ 535008.72 op/sec │ ± 2.33 % ║
83+
║ querystringparser │ 10000 │ 541710.81 op/sec │ ± 2.46 % ║
84+
║ querystringify │ 10000 │ 680866.27 op/sec │ ± 3.09 % ║
85+
║ querystringify-ts │ 10000 │ 823101.36 op/sec │ ± 2.78 % ║
86+
║ node:querystring │ 1500 │ 1065264.49 op/sec │ ± 0.88 % ║
8687
╟──────────────────────────────┼─────────┼───────────────────┼───────────╢
8788
║ Fastest test │ Samples │ Result │ Tolerance ║
8889
╟──────────────────────────────┼─────────┼───────────────────┼───────────╢
89-
║ fast-querystring │ 10000 │ 2186435.62 op/sec │ ± 3.48 % ║
90+
║ fast-querystring │ 10000 │ 1903529.51 op/sec │ ± 5.96 % ║
9091
╚══════════════════════════════╧═════════╧═══════════════════╧═══════════╝
9192
```
93+
94+
- Importing package.
95+
96+
```
97+
> node benchmark/import.mjs
98+
99+
╔═════════════════════════════╤═════════╤═════════════════╤═══════════╗
100+
║ Slower tests │ Samples │ Result │ Tolerance ║
101+
╟─────────────────────────────┼─────────┼─────────────────┼───────────╢
102+
║ @aws-sdk/querystring-parser │ 1000 │ 8675.34 op/sec │ ± 0.41 % ║
103+
║ querystringparser │ 1000 │ 9580.93 op/sec │ ± 0.75 % ║
104+
║ querystringify │ 1000 │ 9641.84 op/sec │ ± 0.51 % ║
105+
║ qs │ 1000 │ 9840.70 op/sec │ ± 0.79 % ║
106+
║ query-string │ 2000 │ 10958.10 op/sec │ ± 0.86 % ║
107+
╟─────────────────────────────┼─────────┼─────────────────┼───────────╢
108+
║ Fastest test │ Samples │ Result │ Tolerance ║
109+
╟─────────────────────────────┼─────────┼─────────────────┼───────────╢
110+
║ fast-querystring │ 1500 │ 36919.26 op/sec │ ± 0.94 % ║
111+
╚═════════════════════════════╧═════════╧═════════════════╧═══════════╝
112+
```

benchmark/import.mjs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
import benchmark from "cronometro";
22

3+
// "node:querystring" module is omitted from this benchmark because
4+
// it will always be faster than alternatives because of V8 snapshots.
35
await benchmark(
46
{
57
qs() {
@@ -8,9 +10,6 @@ await benchmark(
810
"fast-querystring"() {
911
return import("../lib/index.js");
1012
},
11-
"node:querystring"() {
12-
return import("node:querystring");
13-
},
1413
"query-string"() {
1514
return import("query-string");
1615
},

benchmark/stringify.mjs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import querystringify from "querystringify";
77
import httpQuerystringStringify from "http-querystring-stringify";
88
import awsQueryStringBuilder from "@aws-sdk/querystring-builder";
99
import querystringparser from "querystringparser";
10+
import querystringifyQs from "querystringify-ts";
1011

1112
const value = {
1213
frappucino: "muffin",
@@ -48,6 +49,9 @@ await benchmark(
4849
querystringparser() {
4950
return querystringparser.stringify(value);
5051
},
52+
"querystringify-ts"() {
53+
return querystringifyQs.stringify(value);
54+
},
5155
},
5256
{ warmup: true },
5357
);

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
"qs": "^6.11.0",
4141
"query-string": "^8.1.0",
4242
"querystringify": "^2.2.0",
43+
"querystringify-ts": "^0.1.5",
4344
"querystringparser": "^0.1.1",
4445
"rome": "11.0.0",
4546
"simple-git": "^3.14.1",

0 commit comments

Comments
 (0)