• ulan's avatar
    Introduce a new phantom weakness type without finalization callback. · a6da98d8
    ulan authored
    Handles of this type are automatically reset by the garbage collector
    when their objects are not longer reachable.
    
    The motivation is to reduce pause time of external.weak_global_handles
    phase of the garbage collector by not maintaing the list of pending
    callbacks and not calling the callbacks.
    
    Local testing on discourse page of the v8.inifinite_scroll benchmark
    shows 7x improvement for this GC phase.
    
    Before:
    external.weak_global_handles
     len: 21
     min: 0.0
     max: 4.5
     avg: 0.757142857143
    
    After:
    external.weak_global_handles
     len: 21
     min: 0.0
     max: 0.5
     avg: 0.109523809524
    
    A follow-up patch will enable the new phantom handles in Chromium.
    
    BUG=chromium:608333
    LOG=NO
    
    Review-Url: https://codereview.chromium.org/1950963002
    Cr-Commit-Position: refs/heads/master@{#36095}
    a6da98d8
Name
Last commit
Last update
benchmarks Loading commit data...
build_overrides Loading commit data...
docs Loading commit data...
gypfiles Loading commit data...
include Loading commit data...
infra Loading commit data...
samples Loading commit data...
src Loading commit data...
test Loading commit data...
testing Loading commit data...
third_party/binutils Loading commit data...
tools Loading commit data...
.clang-format Loading commit data...
.gitignore Loading commit data...
.gn Loading commit data...
.ycm_extra_conf.py Loading commit data...
AUTHORS Loading commit data...
BUILD.gn Loading commit data...
CODE_OF_CONDUCT.md Loading commit data...
ChangeLog Loading commit data...
DEPS Loading commit data...
LICENSE Loading commit data...
LICENSE.strongtalk Loading commit data...
LICENSE.v8 Loading commit data...
LICENSE.valgrind Loading commit data...
Makefile Loading commit data...
Makefile.android Loading commit data...
Makefile.nacl Loading commit data...
OWNERS Loading commit data...
PRESUBMIT.py Loading commit data...
README.md Loading commit data...
WATCHLISTS Loading commit data...
codereview.settings Loading commit data...
snapshot_toolchain.gni Loading commit data...