bcb8d49b2c
We already had checksumming for code cache data. We now extend checksumming to the startup snapshot to catch data corruption early. The performance impact for deserialization is a regression of 1-2%, which should be acceptable. Sample output for the included test with --profile-deserialization: [Verifying snapshot checksum took 0.023 ms] [Deserializing isolate (134348 bytes) took 1.891 ms] [Verifying snapshot checksum took 0.024 ms] [Deserializing isolate (134348 bytes) took 1.654 ms] [Deserializing context #0 (47208 bytes) took 0.331 ms] Deserialization will reserve: 208168 bytes per isolate 123368 bytes per context #0 Snapshot blob consists of: 134492 bytes in 6 chunks for startup 115272 bytes for builtins 47152 bytes in 31 chunks for context #0 [Verifying snapshot checksum took 0.048 ms] [Verifying snapshot checksum took 0.043 ms] R=peria@chromium.org, petermarshall@chromium.org Bug: chromium:881417 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: Ibc57520d459c86be8972f731aa35045b5e3751d7 Reviewed-on: https://chromium-review.googlesource.com/1241874 Reviewed-by: Peter Marshall <petermarshall@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#56217} |
||
---|---|---|
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.