8c30a2ccc0
V8 test suites return tests by loading them into memory up-front. Up-front loading has memory and loading-time overhead for the testrunner. This CL converts the test-suites to load tests during the test run in parallel. After CL, most test suites start running immediately and all test suites start running after 3 seconds on a modern SSD. This CL eliminates the 200 MiB memory spikes that causes memory problems in mac minis. Overhead of running test262 before CL: Line # Mem usage Increment Line Contents ================================================= 264 225.760 MiB 195.8.000 MiB tests = self._load_testsuite_generators(args, options) ------------------------------------------------- Overhead of running test262 after CL: Line # Mem usage Increment Line Contents ================================================ 264 28.840 MiB 0.000 MiB tests = self._load_testsuite_generators(args, options) ------------------------------------------------- R=machenbach@chromium.org CC=yangguo@chromium.org,sergiyb@chromium.org Bug: v8:8174, v8:8552, v8:8728 Change-Id: Iab540b9410239b05dc80b4a5228db25d8b8fb3b9 Reviewed-on: https://chromium-review.googlesource.com/c/1454478 Commit-Queue: Tamer Tas <tmrts@chromium.org> Reviewed-by: Michael Achenbach <machenbach@chromium.org> Reviewed-by: Sergiy Belozorov <sergiyb@chromium.org> Cr-Commit-Position: refs/heads/master@{#59408} |
||
---|---|---|
benchmarks | ||
build_overrides | ||
custom_deps | ||
docs | ||
gni | ||
include | ||
infra | ||
samples | ||
src | ||
test | ||
testing | ||
third_party | ||
tools | ||
.clang-format | ||
.clang-tidy | ||
.editorconfig | ||
.git-blame-ignore-revs | ||
.gitattributes | ||
.gitignore | ||
.gn | ||
.vpython | ||
.ycm_extra_conf.py | ||
AUTHORS | ||
BUILD.gn | ||
ChangeLog | ||
CODE_OF_CONDUCT.md | ||
codereview.settings | ||
DEPS | ||
LICENSE | ||
LICENSE.fdlibm | ||
LICENSE.strongtalk | ||
LICENSE.v8 | ||
LICENSE.valgrind | ||
OWNERS | ||
PRESUBMIT.py | ||
README.md | ||
snapshot_toolchain.gni | ||
WATCHLISTS |
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://github.com/v8/v8/wiki
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 on the V8 wiki.