[heap] Switch to 500k pages
- Decrease regular heap object size to 300k, keeping the same ration (60%)
between this limit and page size.
In a follow up, we can now get rid of the new space border page while
keeping the 1M minimum new space size.
Some results (v8.infinite_scroll; 3 runs):
- evacuate.avg: +15.3% (1.4->1.2)
- evacuate.max: +24.4% (2.4->1.8)
BUG=chromium:581412
LOG=N
R=hpayer@chromium.org, ulan@chromium.org, yangguo@chromium.org
Committed: https://crrev.com/ffe5c670e1559d11e7b252e15fec38765e7dbe4f
Cr-Commit-Position: refs/heads/master@{#38533}
Description was changed from ========== [heap] Switch to 500k pages BUG= ========== to ========== [heap] ...
4 years, 6 months ago
(2016-05-31 09:19:34 UTC)
#1
Description was changed from
==========
[heap] Switch to 500k pages
BUG=
==========
to
==========
[heap] Switch to 500k pages
BUG=chromium:581412
LOG=N
==========
Michael Lippautz
Patchset #10 (id:180001) has been deleted
4 years, 5 months ago
(2016-06-29 13:39:56 UTC)
#2
Patchset #10 (id:180001) has been deleted
Michael Lippautz
Description was changed from ========== [heap] Switch to 500k pages BUG=chromium:581412 LOG=N ========== to ========== ...
4 years, 4 months ago
(2016-07-29 11:52:53 UTC)
#3
Description was changed from
==========
[heap] Switch to 500k pages
BUG=chromium:581412
LOG=N
==========
to
==========
[heap] Switch to 500k pages
- Decrease regular heap object size to 300k.
Perf sheriffs: This potentially tanks (single-digit %) time-based performace
benchmarks, at the benefit of decreasing fragmentaton on V8's heap.
BUG=chromium:581412
LOG=N
==========
Michael Lippautz
Description was changed from ========== [heap] Switch to 500k pages - Decrease regular heap object ...
4 years, 4 months ago
(2016-07-29 11:54:19 UTC)
#4
Description was changed from
==========
[heap] Switch to 500k pages
- Decrease regular heap object size to 300k.
Perf sheriffs: This potentially tanks (single-digit %) time-based performace
benchmarks, at the benefit of decreasing fragmentaton on V8's heap.
BUG=chromium:581412
LOG=N
==========
to
==========
[heap] Switch to 500k pages
- Decrease regular heap object size to 300k, keeping the same ration (60%)
between this limit and page size.
Perf sheriffs: This potentially tanks (expected: small single-digit %)
time-based performace benchmarks, at the benefit of decreasing fragmentaton on
V8's heap. Please open separate bugs for upcoming issues.
BUG=chromium:581412
LOG=N
==========
Michael Lippautz
Description was changed from ========== [heap] Switch to 500k pages - Decrease regular heap object ...
4 years, 4 months ago
(2016-07-29 11:55:10 UTC)
#5
Description was changed from
==========
[heap] Switch to 500k pages
- Decrease regular heap object size to 300k, keeping the same ration (60%)
between this limit and page size.
Perf sheriffs: This potentially tanks (expected: small single-digit %)
time-based performace benchmarks, at the benefit of decreasing fragmentaton on
V8's heap. Please open separate bugs for upcoming issues.
BUG=chromium:581412
LOG=N
==========
to
==========
[heap] Switch to 500k pages
- Decrease regular heap object size to 300k, keeping the same ration (60%)
between this limit and page size.
Furthermore, this also enables us to get rid of the new space border page (age
mark) by keeping the same heap size
Perf sheriffs: This potentially tanks (expected: small single-digit %)
time-based performace benchmarks, at the benefit of decreasing fragmentaton on
V8's heap. Please open separate bugs for upcoming issues.
BUG=chromium:581412
LOG=N
==========
Michael Lippautz
Description was changed from ========== [heap] Switch to 500k pages - Decrease regular heap object ...
4 years, 4 months ago
(2016-07-29 12:07:27 UTC)
#6
Description was changed from
==========
[heap] Switch to 500k pages
- Decrease regular heap object size to 300k, keeping the same ration (60%)
between this limit and page size.
Furthermore, this also enables us to get rid of the new space border page (age
mark) by keeping the same heap size
Perf sheriffs: This potentially tanks (expected: small single-digit %)
time-based performace benchmarks, at the benefit of decreasing fragmentaton on
V8's heap. Please open separate bugs for upcoming issues.
BUG=chromium:581412
LOG=N
==========
to
==========
[heap] Switch to 500k pages
- Decrease regular heap object size to 300k, keeping the same ration (60%)
between this limit and page size.
Furthermore, this also enables us to get rid of the new space border page (age
mark) by keeping the same heap size.
BUG=chromium:581412
LOG=N
==========
Michael Lippautz
Patchset #10 (id:200001) has been deleted
4 years, 4 months ago
(2016-08-01 10:46:28 UTC)
#7
Patchset #10 (id:200001) has been deleted
Michael Lippautz
Patchset #9 (id:160001) has been deleted
4 years, 4 months ago
(2016-08-01 10:46:37 UTC)
#8
Patchset #9 (id:160001) has been deleted
Michael Lippautz
Patchset #7 (id:120001) has been deleted
4 years, 4 months ago
(2016-08-01 10:46:46 UTC)
#9
Patchset #7 (id:120001) has been deleted
Michael Lippautz
Patchset #7 (id:140001) has been deleted
4 years, 4 months ago
(2016-08-01 10:46:53 UTC)
#10
Patchset #7 (id:140001) has been deleted
Michael Lippautz
Patchset #14 (id:360001) has been deleted
4 years, 4 months ago
(2016-08-02 10:48:42 UTC)
#11
Patchset #14 (id:360001) has been deleted
Michael Lippautz
Patchset #2 (id:20001) has been deleted
4 years, 4 months ago
(2016-08-02 10:49:57 UTC)
#12
Patchset #2 (id:20001) has been deleted
Michael Lippautz
Description was changed from ========== [heap] Switch to 500k pages - Decrease regular heap object ...
4 years, 4 months ago
(2016-08-02 11:53:37 UTC)
#13
Description was changed from
==========
[heap] Switch to 500k pages
- Decrease regular heap object size to 300k, keeping the same ration (60%)
between this limit and page size.
Furthermore, this also enables us to get rid of the new space border page (age
mark) by keeping the same heap size.
BUG=chromium:581412
LOG=N
==========
to
==========
[heap] Switch to 500k pages
- Decrease regular heap object size to 300k, keeping the same ration (60%)
between this limit and page size.
In a follow up, we can now get rid of the new space border page and still keep
the 1M minimum new space size.
BUG=chromium:581412
LOG=N
==========
Michael Lippautz
Description was changed from ========== [heap] Switch to 500k pages - Decrease regular heap object ...
4 years, 4 months ago
(2016-08-02 11:53:56 UTC)
#14
Description was changed from
==========
[heap] Switch to 500k pages
- Decrease regular heap object size to 300k, keeping the same ration (60%)
between this limit and page size.
In a follow up, we can now get rid of the new space border page and still keep
the 1M minimum new space size.
BUG=chromium:581412
LOG=N
==========
to
==========
[heap] Switch to 500k pages
- Decrease regular heap object size to 300k, keeping the same ration (60%)
between this limit and page size.
In a follow up, we can now get rid of the new space border page and still
keep the 1M minimum new space size.
BUG=chromium:581412
LOG=N
==========
Michael Lippautz
Description was changed from ========== [heap] Switch to 500k pages - Decrease regular heap object ...
4 years, 4 months ago
(2016-08-02 11:54:11 UTC)
#15
Description was changed from
==========
[heap] Switch to 500k pages
- Decrease regular heap object size to 300k, keeping the same ration (60%)
between this limit and page size.
In a follow up, we can now get rid of the new space border page and still
keep the 1M minimum new space size.
BUG=chromium:581412
LOG=N
==========
to
==========
[heap] Switch to 500k pages
- Decrease regular heap object size to 300k, keeping the same ration (60%)
between this limit and page size.
In a follow up, we can now get rid of the new space border page while
keeping the 1M minimum new space size.
BUG=chromium:581412
LOG=N
==========
Michael Lippautz
Patchset #8 (id:260001) has been deleted
4 years, 4 months ago
(2016-08-02 11:56:13 UTC)
#16
Patchset #8 (id:260001) has been deleted
Michael Lippautz
Patchset #8 (id:280001) has been deleted
4 years, 4 months ago
(2016-08-02 11:56:29 UTC)
#17
Patchset #8 (id:280001) has been deleted
Michael Lippautz
Patchset #8 (id:300001) has been deleted
4 years, 4 months ago
(2016-08-02 11:56:37 UTC)
#18
Patchset #8 (id:300001) has been deleted
Michael Lippautz
Patchset #5 (id:100001) has been deleted
4 years, 4 months ago
(2016-08-02 11:56:59 UTC)
#19
Patchset #5 (id:100001) has been deleted
Michael Lippautz
Description was changed from ========== [heap] Switch to 500k pages - Decrease regular heap object ...
4 years, 4 months ago
(2016-08-02 12:03:17 UTC)
#20
Description was changed from
==========
[heap] Switch to 500k pages
- Decrease regular heap object size to 300k, keeping the same ration (60%)
between this limit and page size.
In a follow up, we can now get rid of the new space border page while
keeping the 1M minimum new space size.
BUG=chromium:581412
LOG=N
==========
to
==========
[heap] Switch to 500k pages
- Decrease regular heap object size to 300k, keeping the same ration (60%)
between this limit and page size.
In a follow up, we can now get rid of the new space border page while
keeping the 1M minimum new space size.
Results in a 5-10% improvement on v8.infinite_scroll evacuation bucket.
BUG=chromium:581412
LOG=N
R=hpayer@chromium.org, ulan@chromium.org
==========
Dry run: Try jobs failed on following builders: v8_win_nosnap_shared_rel_ng on master.tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_win_nosnap_shared_rel_ng/builds/6126) v8_win_nosnap_shared_rel_ng_triggered on ...
4 years, 4 months ago
(2016-08-02 13:40:12 UTC)
#26
4 years, 4 months ago
(2016-08-02 19:19:45 UTC)
#27
Patchset #5 (id:220001) has been deleted
Michael Lippautz
Description was changed from ========== [heap] Switch to 500k pages - Decrease regular heap object ...
4 years, 4 months ago
(2016-08-03 07:41:20 UTC)
#28
Description was changed from
==========
[heap] Switch to 500k pages
- Decrease regular heap object size to 300k, keeping the same ration (60%)
between this limit and page size.
In a follow up, we can now get rid of the new space border page while
keeping the 1M minimum new space size.
Results in a 5-10% improvement on v8.infinite_scroll evacuation bucket.
BUG=chromium:581412
LOG=N
R=hpayer@chromium.org, ulan@chromium.org
==========
to
==========
[heap] Switch to 500k pages
- Decrease regular heap object size to 300k, keeping the same ration (60%)
between this limit and page size.
In a follow up, we can now get rid of the new space border page while
keeping the 1M minimum new space size.
Some results (v.infinite_scroll; 3 runs):
- evacuate.avg: +15.3% (1.4->1.2)
- evacuate.max: +24.4% (2.4->1.8)
BUG=chromium:581412
LOG=N
R=hpayer@chromium.org, ulan@chromium.org
==========
Michael Lippautz
Description was changed from ========== [heap] Switch to 500k pages - Decrease regular heap object ...
4 years, 4 months ago
(2016-08-03 07:41:31 UTC)
#29
Description was changed from
==========
[heap] Switch to 500k pages
- Decrease regular heap object size to 300k, keeping the same ration (60%)
between this limit and page size.
In a follow up, we can now get rid of the new space border page while
keeping the 1M minimum new space size.
Some results (v.infinite_scroll; 3 runs):
- evacuate.avg: +15.3% (1.4->1.2)
- evacuate.max: +24.4% (2.4->1.8)
BUG=chromium:581412
LOG=N
R=hpayer@chromium.org, ulan@chromium.org
==========
to
==========
[heap] Switch to 500k pages
- Decrease regular heap object size to 300k, keeping the same ration (60%)
between this limit and page size.
In a follow up, we can now get rid of the new space border page while
keeping the 1M minimum new space size.
Some results (v8.infinite_scroll; 3 runs):
- evacuate.avg: +15.3% (1.4->1.2)
- evacuate.max: +24.4% (2.4->1.8)
BUG=chromium:581412
LOG=N
R=hpayer@chromium.org, ulan@chromium.org
==========
Michael Lippautz
It's ready now.
4 years, 4 months ago
(2016-08-03 10:26:35 UTC)
#30
Dry run: Try jobs failed on following builders: v8_linux64_avx2_rel_ng on master.tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_linux64_avx2_rel_ng/builds/6139) v8_linux64_avx2_rel_ng_triggered on ...
4 years, 4 months ago
(2016-08-03 12:58:23 UTC)
#35
Dry run: Try jobs failed on following builders: v8_win_compile_dbg on master.tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_win_compile_dbg/builds/21982)
4 years, 4 months ago
(2016-08-04 13:17:24 UTC)
#40
Dry run: Try jobs failed on following builders: v8_win_nosnap_shared_rel_ng on master.tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_win_nosnap_shared_rel_ng/builds/6352) v8_win_nosnap_shared_rel_ng_triggered on ...
4 years, 4 months ago
(2016-08-04 18:14:25 UTC)
#44
Dry run: Try jobs failed on following builders: v8_linux_arm_rel_ng on master.tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_linux_arm_rel_ng/builds/6408) v8_linux_arm_rel_ng_triggered on ...
4 years, 4 months ago
(2016-08-08 18:54:16 UTC)
#53
Dry run: Try jobs failed on following builders: v8_linux64_avx2_rel_ng on master.tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_linux64_avx2_rel_ng/builds/6510) v8_linux64_avx2_rel_ng_triggered on ...
4 years, 4 months ago
(2016-08-09 08:22:17 UTC)
#58
+Yang PTAL: We now shrink the pages after deserialization the isolate snapshot. I would like ...
4 years, 4 months ago
(2016-08-09 11:30:26 UTC)
#61
+Yang
PTAL: We now shrink the pages after deserialization the isolate snapshot. I
would like to land this and see what the actual issues are (e.g. page cycler)
retrospectively. The subtests I looked at in page_cycler.top_25 all have
>15-20MB used heap.
If it does not work out, we can always leave more room on the last page after
deserialization.
https://codereview.chromium.org/2013713003/diff/520001/src/base/build_config.h
File src/base/build_config.h (right):
https://codereview.chromium.org/2013713003/diff/520001/src/base/build_config....
src/base/build_config.h:203: const int kPageSizeBits = 19;
On 2016/08/08 16:25:02, Hannes Payer wrote:
> Would it be possible to make the page size configurable, with a flag, to
> experiment... ?
There's the issue with kMaxRegularHeapObjectSize and the constant in objects.h
that is only related via comment because we don't want to include the header.
Having that said, after this CL, changing the page size should merely be a
3-line CL (3 constants).
https://codereview.chromium.org/2013713003/diff/520001/src/heap/spaces.cc
File src/heap/spaces.cc (right):
https://codereview.chromium.org/2013713003/diff/520001/src/heap/spaces.cc#new...
src/heap/spaces.cc:1223: if (snapshot_requires > 0) {
On 2016/08/08 16:25:02, Hannes Payer wrote:
> I think this if case should be a DCHECK and the else default should not exist,
> i.e. the function should only be called if we are deserializing a snapshot.
Obsolete.
https://codereview.chromium.org/2013713003/diff/520001/src/heap/spaces.cc#new...
src/heap/spaces.cc:1227: memory_served += page->area_size();
On 2016/08/08 16:25:02, Hannes Payer wrote:
> size of actual objects would be more precise here.
Obsolete.
https://codereview.chromium.org/2013713003/diff/520001/src/heap/spaces.cc#new...
src/heap/spaces.cc:1230: const int area_size =
MemoryAllocator::PageAreaSize(identity());
On 2016/08/08 16:25:02, Hannes Payer wrote:
> Just call AreaSize() here.
Obsolete.
https://codereview.chromium.org/2013713003/diff/520001/src/heap/spaces.cc#new...
src/heap/spaces.cc:1236: return static_cast<int>(needed);
On 2016/08/08 16:25:02, Hannes Payer wrote:
> Maybe we should do a different approach here:
> How about just allocated as much memory as needed and then shrink the pages
> after deserialization?
Done.
Michael Lippautz
Patchset #13 (id:480001) has been deleted
4 years, 4 months ago
(2016-08-09 12:35:07 UTC)
#62
Patchset #13 (id:480001) has been deleted
Yang
some nits. otherwise lgtm. https://codereview.chromium.org/2013713003/diff/700001/src/snapshot/snapshot.h File src/snapshot/snapshot.h (right): https://codereview.chromium.org/2013713003/diff/700001/src/snapshot/snapshot.h#newcode88 src/snapshot/snapshot.h:88: // [6] number of contexts ...
4 years, 4 months ago
(2016-08-09 13:26:29 UTC)
#63
4 years, 4 months ago
(2016-08-10 09:58:47 UTC)
#73
Dry run: This issue passed the CQ dry run.
Hannes Payer (out of office)
lgtm
4 years, 4 months ago
(2016-08-10 11:40:29 UTC)
#74
lgtm
Michael Lippautz
Description was changed from ========== [heap] Switch to 500k pages - Decrease regular heap object ...
4 years, 4 months ago
(2016-08-10 11:43:02 UTC)
#75
Description was changed from
==========
[heap] Switch to 500k pages
- Decrease regular heap object size to 300k, keeping the same ration (60%)
between this limit and page size.
In a follow up, we can now get rid of the new space border page while
keeping the 1M minimum new space size.
Some results (v8.infinite_scroll; 3 runs):
- evacuate.avg: +15.3% (1.4->1.2)
- evacuate.max: +24.4% (2.4->1.8)
BUG=chromium:581412
LOG=N
R=hpayer@chromium.org, ulan@chromium.org
==========
to
==========
[heap] Switch to 500k pages
- Decrease regular heap object size to 300k, keeping the same ration (60%)
between this limit and page size.
In a follow up, we can now get rid of the new space border page while
keeping the 1M minimum new space size.
Some results (v8.infinite_scroll; 3 runs):
- evacuate.avg: +15.3% (1.4->1.2)
- evacuate.max: +24.4% (2.4->1.8)
BUG=chromium:581412
LOG=N
R=hpayer@chromium.org, ulan@chromium.org, yangguo@chromium.org
==========
Michael Lippautz
The CQ bit was checked by mlippautz@chromium.org
4 years, 4 months ago
(2016-08-10 11:43:36 UTC)
#76
Description was changed from ========== [heap] Switch to 500k pages - Decrease regular heap object ...
4 years, 4 months ago
(2016-08-10 11:45:27 UTC)
#79
Message was sent while issue was closed.
Description was changed from
==========
[heap] Switch to 500k pages
- Decrease regular heap object size to 300k, keeping the same ration (60%)
between this limit and page size.
In a follow up, we can now get rid of the new space border page while
keeping the 1M minimum new space size.
Some results (v8.infinite_scroll; 3 runs):
- evacuate.avg: +15.3% (1.4->1.2)
- evacuate.max: +24.4% (2.4->1.8)
BUG=chromium:581412
LOG=N
R=hpayer@chromium.org, ulan@chromium.org, yangguo@chromium.org
==========
to
==========
[heap] Switch to 500k pages
- Decrease regular heap object size to 300k, keeping the same ration (60%)
between this limit and page size.
In a follow up, we can now get rid of the new space border page while
keeping the 1M minimum new space size.
Some results (v8.infinite_scroll; 3 runs):
- evacuate.avg: +15.3% (1.4->1.2)
- evacuate.max: +24.4% (2.4->1.8)
BUG=chromium:581412
LOG=N
R=hpayer@chromium.org, ulan@chromium.org, yangguo@chromium.org
==========
commit-bot: I haz the power
Committed patchset #24 (id:780001)
4 years, 4 months ago
(2016-08-10 11:45:28 UTC)
#80
Message was sent while issue was closed.
Committed patchset #24 (id:780001)
commit-bot: I haz the power
Description was changed from ========== [heap] Switch to 500k pages - Decrease regular heap object ...
4 years, 4 months ago
(2016-08-10 11:45:38 UTC)
#81
Message was sent while issue was closed.
Description was changed from
==========
[heap] Switch to 500k pages
- Decrease regular heap object size to 300k, keeping the same ration (60%)
between this limit and page size.
In a follow up, we can now get rid of the new space border page while
keeping the 1M minimum new space size.
Some results (v8.infinite_scroll; 3 runs):
- evacuate.avg: +15.3% (1.4->1.2)
- evacuate.max: +24.4% (2.4->1.8)
BUG=chromium:581412
LOG=N
R=hpayer@chromium.org, ulan@chromium.org, yangguo@chromium.org
==========
to
==========
[heap] Switch to 500k pages
- Decrease regular heap object size to 300k, keeping the same ration (60%)
between this limit and page size.
In a follow up, we can now get rid of the new space border page while
keeping the 1M minimum new space size.
Some results (v8.infinite_scroll; 3 runs):
- evacuate.avg: +15.3% (1.4->1.2)
- evacuate.max: +24.4% (2.4->1.8)
BUG=chromium:581412
LOG=N
R=hpayer@chromium.org, ulan@chromium.org, yangguo@chromium.org
Committed: https://crrev.com/ffe5c670e1559d11e7b252e15fec38765e7dbe4f
Cr-Commit-Position: refs/heads/master@{#38533}
==========
commit-bot: I haz the power
Patchset 24 (id:??) landed as https://crrev.com/ffe5c670e1559d11e7b252e15fec38765e7dbe4f Cr-Commit-Position: refs/heads/master@{#38533}
4 years, 4 months ago
(2016-08-10 11:45:40 UTC)
#82
Issue 2013713003: [heap] Switch to 500k pages
(Closed)
Created 4 years, 7 months ago by Michael Lippautz
Modified 4 years, 4 months ago
Reviewers: Hannes Payer (out of office), ulan, Yang
Base URL: https://chromium.googlesource.com/v8/v8.git@master
Comments: 18