commit | db1cbfa124770ec6b96924fa3bafcc5357f1ab91 | [log] [tgz] |
---|---|---|
author | Igor Sheludko <ishell@chromium.org> | Thu May 08 00:05:16 2025 |
committer | V8 LUCI CQ <v8-scoped@luci-project-accounts.iam.gserviceaccount.com> | Thu May 08 08:56:24 2025 |
tree | 2ed55bad436e68d25826b453182fd1d349841c3b | |
parent | e34c9753072bbdab5ef7c10edb8b7eed5ef9281e [diff] |
[runtime] Split NumberToString cache to caches for Smis and doubles This is a preliminary step before making it possible to store raw doubles in the latter cache. Currently the keys in the latter cache are HeapNumber objects. This split also makes it possible to - avoid eviction of Smi entries by double entries (the former seem to be more important for performance), - avoid additional checks for distinguishing Smi keys from double keys, - configure cache size growing strategy independently, - configure tweak cache clearing logic based on "keys". As a side effect this CL increases the overall number of entries in combined number-to-string cache by 1.5. Drive-by: - add collection of number to string cache usage statistics behind --trace-number-string-cache flag (requires gn argument `v8_enable_snapshot_native_code_counters = true` to enable counters machinery in builtins), - add flags for configuring full number to string cache sizes. This CL changes heap layout and may regress some benchmarks, however the follow up CLs should recover potential regressions. Bug: 409808503 Change-Id: Ie33c6847c2608af5e359830ac4bbcc7017791bd1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6512976 Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Patrick Thier <pthier@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Auto-Submit: Igor Sheludko <ishell@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/main@{#100146}
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
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/*
Please follow the instructions mentioned at v8.dev/docs/contribute.