|
8 | 8 | * [Running benchmarks](#running-benchmarks)
|
9 | 9 | * [Running individual benchmarks](#running-individual-benchmarks)
|
10 | 10 | * [Running all benchmarks](#running-all-benchmarks)
|
| 11 | + * [Filtering benchmarks](#filtering-benchmarks) |
11 | 12 | * [Comparing Node.js versions](#comparing-nodejs-versions)
|
12 | 13 | * [Comparing parameters](#comparing-parameters)
|
13 | 14 | * [Running Benchmarks on the CI](#running-benchmarks-on-the-ci)
|
@@ -149,6 +150,87 @@ It is possible to execute more groups by adding extra process arguments.
|
149 | 150 | $ node benchmark/run.js assert async_hooks
|
150 | 151 | ```
|
151 | 152 |
|
| 153 | +#### Filtering benchmarks |
| 154 | + |
| 155 | +`benchmark/run.js` and `benchmark/compare.js` have `--filter pattern` and |
| 156 | +`--exclude pattern` options, which can be used to run a subset of benchmarks or |
| 157 | +to exclude specific benchmarks from the execution, respectively. |
| 158 | + |
| 159 | +```console |
| 160 | +$ node benchmark/run.js --filter "deepequal-b" assert |
| 161 | + |
| 162 | +assert/deepequal-buffer.js |
| 163 | +assert/deepequal-buffer.js method="deepEqual" strict=0 len=100 n=20000: 773,200.4995493788 |
| 164 | +assert/deepequal-buffer.js method="notDeepEqual" strict=0 len=100 n=20000: 964,411.712953848 |
| 165 | + |
| 166 | +$ node benchmark/run.js --exclude "deepequal-b" assert |
| 167 | + |
| 168 | +assert/deepequal-map.js |
| 169 | +assert/deepequal-map.js method="deepEqual_primitiveOnly" strict=0 len=500 n=500: 20,445.06368453332 |
| 170 | +assert/deepequal-map.js method="deepEqual_objectOnly" strict=0 len=500 n=500: 1,393.3481642240833 |
| 171 | +... |
| 172 | + |
| 173 | +assert/deepequal-object.js |
| 174 | +assert/deepequal-object.js method="deepEqual" strict=0 size=100 n=5000: 1,053.1950937538475 |
| 175 | +assert/deepequal-object.js method="notDeepEqual" strict=0 size=100 n=5000: 9,734.193251965213 |
| 176 | +... |
| 177 | +``` |
| 178 | + |
| 179 | +`--filter` and `--exclude` can be repeated to provide multiple patterns. |
| 180 | + |
| 181 | +```console |
| 182 | +$ node benchmark/run.js --filter "deepequal-b" --filter "deepequal-m" assert |
| 183 | + |
| 184 | +assert/deepequal-buffer.js |
| 185 | +assert/deepequal-buffer.js method="deepEqual" strict=0 len=100 n=20000: 773,200.4995493788 |
| 186 | +assert/deepequal-buffer.js method="notDeepEqual" strict=0 len=100 n=20000: 964,411.712953848 |
| 187 | + |
| 188 | +assert/deepequal-map.js |
| 189 | +assert/deepequal-map.js method="deepEqual_primitiveOnly" strict=0 len=500 n=500: 20,445.06368453332 |
| 190 | +assert/deepequal-map.js method="deepEqual_objectOnly" strict=0 len=500 n=500: 1,393.3481642240833 |
| 191 | + |
| 192 | +$ node benchmark/run.js --exclude "deepequal-b" --exclude "deepequal-m" assert |
| 193 | + |
| 194 | +assert/deepequal-object.js |
| 195 | +assert/deepequal-object.js method="deepEqual" strict=0 size=100 n=5000: 1,053.1950937538475 |
| 196 | +assert/deepequal-object.js method="notDeepEqual" strict=0 size=100 n=5000: 9,734.193251965213 |
| 197 | +... |
| 198 | + |
| 199 | +assert/deepequal-prims-and-objs-big-array-set.js |
| 200 | +assert/deepequal-prims-and-objs-big-array-set.js method="deepEqual_Array" strict=0 len=20000 n=25 primitive="string": 865.2977195251661 |
| 201 | +assert/deepequal-prims-and-objs-big-array-set.js method="notDeepEqual_Array" strict=0 len=20000 n=25 primitive="string": 827.8297281403861 |
| 202 | +assert/deepequal-prims-and-objs-big-array-set.js method="deepEqual_Set" strict=0 len=20000 n=25 primitive="string": 28,826.618268696366 |
| 203 | +... |
| 204 | +``` |
| 205 | + |
| 206 | +If `--filter` and `--exclude` are used together, `--filter` is applied first, |
| 207 | +and `--exclude` is applied on the result of `--filter`: |
| 208 | + |
| 209 | +```console |
| 210 | +$ node benchmark/run.js --filter "bench-" process |
| 211 | + |
| 212 | +process/bench-env.js |
| 213 | +process/bench-env.js operation="get" n=1000000: 2,356,946.0770617095 |
| 214 | +process/bench-env.js operation="set" n=1000000: 1,295,176.3266261867 |
| 215 | +process/bench-env.js operation="enumerate" n=1000000: 24,592.32231990992 |
| 216 | +process/bench-env.js operation="query" n=1000000: 3,625,787.2150573144 |
| 217 | +process/bench-env.js operation="delete" n=1000000: 1,521,131.5742806569 |
| 218 | + |
| 219 | +process/bench-hrtime.js |
| 220 | +process/bench-hrtime.js type="raw" n=1000000: 13,178,002.113936031 |
| 221 | +process/bench-hrtime.js type="diff" n=1000000: 11,585,435.712423025 |
| 222 | +process/bench-hrtime.js type="bigint" n=1000000: 13,342,884.703919787 |
| 223 | + |
| 224 | +$ node benchmark/run.js --filter "bench-" --exclude "hrtime" process |
| 225 | + |
| 226 | +process/bench-env.js |
| 227 | +process/bench-env.js operation="get" n=1000000: 2,356,946.0770617095 |
| 228 | +process/bench-env.js operation="set" n=1000000: 1,295,176.3266261867 |
| 229 | +process/bench-env.js operation="enumerate" n=1000000: 24,592.32231990992 |
| 230 | +process/bench-env.js operation="query" n=1000000: 3,625,787.2150573144 |
| 231 | +process/bench-env.js operation="delete" n=1000000: 1,521,131.5742806569 |
| 232 | +``` |
| 233 | + |
152 | 234 | ### Comparing Node.js versions
|
153 | 235 |
|
154 | 236 | To compare the effect of a new Node.js version use the `compare.js` tool. This
|
|
0 commit comments