v8/test
Benedikt Meurer 9ffd1677f1 [objects] Adjust overly aggressive over-allocation.
When setting up the initial map for a (class or function) constructor,
we always over-allocate a bunch of in-object properties, in case not
all property assignments happen as `this.prop = val` assignments in
the constructor. However this over-allocation was a bit too aggressive
and added a slack of 8 to each class constructor (plus a minimum of
two, when there was no `this.prop = val` assignment). So in total this
would yield an object with initially 40 in-object property slots in
case of a simple class hierarchy like this:

```js
class A {};
class B extends A {};
class C extends B {};
class D extends C {};
new D;
```

While the slack tracking takes care of eventually shrinking the objects
to appropriate sizes, this aggressive over-allocation is still going to
hurt performance quite a bit in the beginning, and will also lead to
more traffic on the minor GC for now good reason.

Instead of the above, we now allocate a minimum of 2 in-object
properties per class (in a hierarchy) and then add a slack of 8 in the
end. Meaning for the example above we end up with 16 initial in-object
property slots, which seems sensible.

Bug: v8:8853
Change-Id: I4a11e35a8612ceef1d776ca2f0543a26c8c2a2bf
Reviewed-on: https://chromium-review.googlesource.com/c/1477276
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59670}
2019-02-19 06:54:51 +00:00
..
benchmarks Reland "Reland "[test] refactor testsuite configuration"" 2019-02-06 09:02:09 +00:00
cctest [objects] Adjust overly aggressive over-allocation. 2019-02-19 06:54:51 +00:00
common [wasm] ReturnCall Implementation (decoder). 2019-02-14 00:02:03 +00:00
debugger Reland "Reland "[test] refactor testsuite configuration"" 2019-02-06 09:02:09 +00:00
fuzzer Reland "Reland "[test] refactor testsuite configuration"" 2019-02-06 09:02:09 +00:00
inspector [cleanup] Improve dependency handling in gn targets 2019-02-15 21:52:32 +00:00
intl [Intl] Fix Null-dereference in CreateICUDateFormatFromCache 2019-02-14 09:53:56 +00:00
js-perf-test [Intl] Add String toLocale(Lower|Upper)Case perf benchmark 2019-02-15 05:53:04 +00:00
memory [snapshot] Remove the builtins snapshot 2018-10-31 10:18:28 +00:00
message [Intl] Remove --harmony-intl-list-format flag from test 2019-02-13 23:22:43 +00:00
mjsunit Fix accessor update of non-extensible maps. 2019-02-19 04:59:36 +00:00
mkgrokdump [cleanup] #include heap-inl.h less often 2019-02-15 06:22:53 +00:00
mozilla Reland "Reland "[test] refactor testsuite configuration"" 2019-02-06 09:02:09 +00:00
preparser [testrunner] enable the progress indicator 2019-02-12 16:03:17 +00:00
test262 Roll test262 2019-02-16 01:50:54 +00:00
torque [torque] make overload resolution robust concerning branching contexts 2019-02-15 10:04:36 +00:00
unittests test: Replace _TEST_CASE_ with _TEST_SUITE_. 2019-02-18 21:36:56 +00:00
wasm-js Reland "Reland "[test] refactor testsuite configuration"" 2019-02-06 09:02:09 +00:00
wasm-spec-tests Reland "Reland "[test] refactor testsuite configuration"" 2019-02-06 09:02:09 +00:00
webkit Reland "Reland "[test] refactor testsuite configuration"" 2019-02-06 09:02:09 +00:00
BUILD.gn Add target for common test headers 2019-02-12 09:30:01 +00:00
OWNERS Make tmrts an infra OWNER 2019-02-15 09:02:24 +00:00