0
0
mirror of https://github.com/nodejs/node.git synced 2024-12-01 07:53:06 +01:00
nodejs/deps/v8
Keyhan Vakil ce4102e8a5 deps: V8: cherry-pick 1a782f6543ae
Original commit message:

    [base] add build flag to use MADV_DONTFORK

    Embedders like Node.js and Electron expose fork(2)/execve(2) to their
    users. Unfortunately when the V8 heap is very large, these APIs become
    rather slow on Linux, due to the kernel needing to do all the
    bookkeeping for the forked process (in clone's dup_mmap and execve's
    exec_mmap). Of course, this is useless because the forked child thread
    will never actually need to access the V8 heap.

    Add a new build flag v8_enable_private_mapping_fork_optimization which
    marks all pages allocated by OS::Allocate as MADV_DONTFORK. This
    improves the performance of Node.js's fork/execve combination by 10x on
    a 600 MB heap.

    Fixed: v8:7381
    Change-Id: Ib649f774d4a932b41886313ce89acc369923699d
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4602858
    Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
    Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#88447}

Refs: 1a782f6543
PR-URL: https://github.com/nodejs/node/pull/48523
Fixes: https://github.com/nodejs/node/issues/25382
Fixes: https://github.com/nodejs/node/issues/14917
Refs: https://github.com/nodejs/performance/issues/93
Refs: https://github.com/nodejs/performance/issues/89
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Juan José Arboleda <soyjuanarbol@gmail.com>
Reviewed-By: Debadree Chatterjee <debadree333@gmail.com>
2023-06-24 17:34:44 +00:00
..
.github
base/trace_event/common
bazel
build_overrides
custom_deps
docs
gni
include deps: patch V8 to 11.3.244.8 2023-04-17 06:55:34 +00:00
infra deps: patch V8 to 11.3.244.8 2023-04-17 06:55:34 +00:00
samples
src deps: V8: cherry-pick 1a782f6543ae 2023-06-24 17:34:44 +00:00
test deps: patch V8 to support compilation on win-arm64 2023-03-31 14:15:29 +00:00
testing
third_party
tools deps: patch V8 to 11.3.244.8 2023-04-17 06:55:34 +00:00
.bazelrc
.clang-format
.clang-tidy
.editorconfig
.flake8
.git-blame-ignore-revs
.gitattributes
.gitignore
.gn
.mailmap
.style.yapf
.vpython3
.ycm_extra_conf.py
AUTHORS
BUILD.bazel
BUILD.gn deps: V8: cherry-pick 1a782f6543ae 2023-06-24 17:34:44 +00:00
CODE_OF_CONDUCT.md
codereview.settings
COMMON_OWNERS
DEPS
DIR_METADATA
ENG_REVIEW_OWNERS
INFRA_OWNERS
INTL_OWNERS
LICENSE
LICENSE.fdlibm
LICENSE.strongtalk
LICENSE.v8
LOONG_OWNERS
MIPS_OWNERS
OWNERS
PPC_OWNERS
PRESUBMIT.py
README.md
RISCV_OWNERS
S390_OWNERS
WATCHLISTS
WORKSPACE

V8 JavaScript Engine

V8 is Google's open source JavaScript engine.

V8 implements ECMAScript as specified in ECMA-262.

V8 is written in C++ and is used in Google Chrome, the open source browser from Google.

V8 can run standalone, or can be embedded into any C++ application.

V8 Project page: https://v8.dev/docs

Getting the Code

Checkout depot tools, and run

    fetch v8

This will checkout V8 into the directory v8 and fetch all of its dependencies. To stay up to date, run

    git pull origin
    gclient sync

For fetching all branches, add the following into your remote configuration in .git/config:

    fetch = +refs/branch-heads/*:refs/remotes/branch-heads/*
    fetch = +refs/tags/*:refs/tags/*

Contributing

Please follow the instructions mentioned at v8.dev/docs/contribute.