48 lines
1.5 KiB
Markdown
48 lines
1.5 KiB
Markdown
# Benchmarks
|
|
|
|
## Running the benchmarks
|
|
|
|
From the parent directory, run
|
|
|
|
```bash
|
|
npm run-script benchmark
|
|
```
|
|
|
|
The above script supports the following arguments:
|
|
|
|
* `--benchmarks=...`: A semicolon-separated list of benchmark names. These names
|
|
will be mapped to file names in this directory by appending `.js`.
|
|
|
|
## Adding benchmarks
|
|
|
|
The steps below should be followed when adding new benchmarks.
|
|
|
|
0. Decide on a name for the benchmark. This name will be used in several places.
|
|
This example will use the name `new_benchmark`.
|
|
|
|
0. Create files `new_benchmark.cc` and `new_benchmark.js` in this directory.
|
|
|
|
0. Copy an existing benchmark in `binding.gyp` and change the target name prefix
|
|
and the source file name to `new_benchmark`. This should result in two new
|
|
targets which look like this:
|
|
|
|
```gyp
|
|
{
|
|
'target_name': 'new_benchmark',
|
|
'sources': [ 'new_benchmark.cc' ],
|
|
'includes': [ '../except.gypi' ],
|
|
},
|
|
{
|
|
'target_name': 'new_benchmark_noexcept',
|
|
'sources': [ 'new_benchmark.cc' ],
|
|
'includes': [ '../noexcept.gypi' ],
|
|
},
|
|
```
|
|
|
|
There should always be a pair of targets: one bearing the name of the
|
|
benchmark and configured with C++ exceptions enabled, and one bearing the
|
|
same name followed by the suffix `_noexcept` and configured with C++
|
|
exceptions disabled. This will ensure that the benchmark can be written to
|
|
cover both the case where C++ exceptions are enabled and the case where they
|
|
are disabled.
|