Skip to content

Commit

Permalink
enable V8 flag to MADV_DONTFORK V8's heap
Browse files Browse the repository at this point in the history
Here are the results of running the existing benchmark. Note that this
optimization helps more for applications with larger heaps, so this is
somewhat of an underestimate of the real world performance benefits.

```console
$ ./node benchmark/compare.js --runs 15 \
        --new ./node \
        --old ~/node-v20/out/Release/node \
        --filter params child_process > cpr
$ node-benchmark-compare cpr
                                 confidence improvement  (***)
methodName='exec' n=1000                ***     60.84 % ±5.43%
methodName='execFile' n=1000            ***     53.72 % ±3.33%
methodName='execFileSync' n=1000        ***      9.10 % ±0.84%
methodName='execSync' n=1000            ***     10.44 % ±0.97%
methodName='spawn' n=1000               ***     53.10 % ±2.90%
methodName='spawnSync' n=1000           ***      8.64 % ±1.22%

  0.01 false positives, when considering a 0.1% risk acceptance (***)
```

Fixes: nodejs#25382
Fixes: nodejs#14917
Refs: nodejs/performance#93
Refs: nodejs/performance#89
  • Loading branch information
kvakil committed Jun 22, 2023
1 parent 464e319 commit 1242fcb
Showing 1 changed file with 8 additions and 0 deletions.
8 changes: 8 additions & 0 deletions tools/v8_gypfiles/features.gypi
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,11 @@
# Sets -dENABLE_HUGEPAGE
'v8_enable_hugepage%': 0,

# Sets -dV8_ENABLE_PRIVATE_MAPPING_FORK_OPTIMIZATION. This speeds up
# fork/execve on Linux systems by marking V8's allocated pages as
# MADV_DONTFORK.
'v8_enable_private_mapping_fork_optimization%': 1,

# Sets -dENABLE_VTUNE_JIT_INTERFACE.
'v8_enable_vtunejit%': 0,

Expand Down Expand Up @@ -320,6 +325,9 @@
['v8_enable_hugepage==1', {
'defines': ['ENABLE_HUGEPAGE',],
}],
['v8_enable_private_mapping_fork_optimization==1', {
'defines': ['V8_ENABLE_PRIVATE_MAPPING_FORK_OPTIMIZATION'],
}],
['v8_enable_vtunejit==1', {
'defines': ['ENABLE_VTUNE_JIT_INTERFACE',],
}],
Expand Down

0 comments on commit 1242fcb

Please sign in to comment.