Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(165)

Issue 1252683003: Oilpan: Schedule a precise GC when a page navigates (Closed)

Created:
5 years, 5 months ago by keishi
Modified:
5 years, 4 months ago
CC:
blink-reviews, tyoshino+watch_chromium.org, oilpan-reviews, Mads Ager (chromium), eae+blinkwatch, blink-reviews-dom_chromium.org, dglazkov+blink, gavinp+loader_chromium.org, Nate Chapin, kouhei+heap_chromium.org, rwlbuis
Target Ref:
refs/heads/master
Project:
blink
Visibility:
Public.

Description

Oilpan: Schedule a precise GC when a page navigates Page navigation will likely produce many garbage Nodes so this CL adds a special navigation GC. Document keeps track of number of attached nodes in Docuement::nodeCount(). When a navigation occurs we calculate the estimatedRemovalRatio from the (number of garbage nodes) / (total node instance count). The number of garbage nodes is estimated by subtracting the nodeCount of non navigating documents from the total node instance count. BUG=None Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=200467

Patch Set 1 #

Patch Set 2 : WIP #

Total comments: 4

Patch Set 3 : #

Total comments: 5

Patch Set 4 : #

Total comments: 8

Patch Set 5 : #

Total comments: 10

Patch Set 6 : #

Total comments: 2

Patch Set 7 : #

Patch Set 8 : #

Patch Set 9 : Added initialization #

Patch Set 10 : #

Unified diffs Side-by-side diffs Delta from patch set Stats (+91 lines, -12 lines) Patch
M Source/core/dom/Document.h View 1 2 3 4 2 chunks +13 lines, -0 lines 0 comments Download
M Source/core/dom/Document.cpp View 1 2 3 4 5 6 7 8 9 6 chunks +4 lines, -9 lines 0 comments Download
M Source/core/dom/Element.h View 1 2 3 4 5 6 7 2 chunks +6 lines, -2 lines 0 comments Download
M Source/core/loader/FrameLoader.cpp View 1 2 3 4 5 6 7 8 1 chunk +12 lines, -0 lines 0 comments Download
M Source/platform/heap/ThreadState.h View 1 2 3 4 5 3 chunks +6 lines, -0 lines 0 comments Download
M Source/platform/heap/ThreadState.cpp View 1 2 3 4 5 6 7 8 3 chunks +50 lines, -1 line 0 comments Download

Messages

Total messages: 36 (15 generated)
keishi
5 years, 5 months ago (2015-07-23 07:56:58 UTC) #2
haraken
The approach is looking good. https://codereview.chromium.org/1252683003/diff/20001/Source/core/loader/FrameLoader.cpp File Source/core/loader/FrameLoader.cpp (right): https://codereview.chromium.org/1252683003/diff/20001/Source/core/loader/FrameLoader.cpp#newcode1026 Source/core/loader/FrameLoader.cpp:1026: bool FrameLoader::prepareForCommit() Just a ...
5 years, 5 months ago (2015-07-23 23:19:30 UTC) #4
haraken
https://codereview.chromium.org/1252683003/diff/40001/Source/core/dom/Document.h File Source/core/dom/Document.h (right): https://codereview.chromium.org/1252683003/diff/40001/Source/core/dom/Document.h#newcode1041 Source/core/dom/Document.h:1041: void decrementNodeCount() { m_nodeCount--; } I'd use 'signed int' ...
5 years, 4 months ago (2015-08-03 01:03:59 UTC) #5
keishi
noderatio2 is patch set 4. blink_perf numbers look mostly the same as ToT oilpan. I'm ...
5 years, 4 months ago (2015-08-06 06:59:14 UTC) #6
haraken
Add your performance results to the CL description. https://codereview.chromium.org/1252683003/diff/60001/Source/core/dom/Document.h File Source/core/dom/Document.h (right): https://codereview.chromium.org/1252683003/diff/60001/Source/core/dom/Document.h#newcode1047 Source/core/dom/Document.h:1047: int ...
5 years, 4 months ago (2015-08-06 07:52:43 UTC) #7
keishi
Here is the telemetry results for this CL. https://257e68df4dae930120a4c67b6f7a507d5042fbc3.googledrive.com/host/0B4aiM9jljUy8UEh0QjR3SUVXaVE/vanilla-vs-oilpan-vs-noderatio22.html I think this CL (noderatio22) doesn't ...
5 years, 4 months ago (2015-08-11 06:59:53 UTC) #8
haraken
LGTM % the state transition in setGCState is correctly fixed. Sigbjorn: Would you mind taking ...
5 years, 4 months ago (2015-08-11 07:43:09 UTC) #10
keishi
https://codereview.chromium.org/1252683003/diff/80001/Source/core/dom/Element.h File Source/core/dom/Element.h (right): https://codereview.chromium.org/1252683003/diff/80001/Source/core/dom/Element.h#newcode808 Source/core/dom/Element.h:808: insertionPoint->document().topDocument().incrementNodeCount(); On 2015/08/11 07:43:08, haraken wrote: > > You ...
5 years, 4 months ago (2015-08-11 08:12:58 UTC) #11
haraken
Still LGTM. It looks like sigbjorn is near-ooo, so let's proceed with landing this one. ...
5 years, 4 months ago (2015-08-11 08:30:20 UTC) #12
keishi
https://codereview.chromium.org/1252683003/diff/100001/Source/platform/heap/ThreadState.cpp File Source/platform/heap/ThreadState.cpp (right): https://codereview.chromium.org/1252683003/diff/100001/Source/platform/heap/ThreadState.cpp#newcode890 Source/platform/heap/ThreadState.cpp:890: case PageNavigationGCScheduled: On 2015/08/11 08:30:20, haraken wrote: > > ...
5 years, 4 months ago (2015-08-11 08:32:29 UTC) #13
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1252683003/120001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1252683003/120001
5 years, 4 months ago (2015-08-11 08:32:54 UTC) #16
commit-bot: I haz the power
Try jobs failed on following builders: win_blink_rel on tryserver.blink (JOB_FAILED, http://build.chromium.org/p/tryserver.blink/builders/win_blink_rel/builds/73265)
5 years, 4 months ago (2015-08-11 09:03:07 UTC) #18
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1252683003/140001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1252683003/140001
5 years, 4 months ago (2015-08-11 13:43:06 UTC) #21
commit-bot: I haz the power
Try jobs failed on following builders: win_blink_rel on tryserver.blink (JOB_FAILED, http://build.chromium.org/p/tryserver.blink/builders/win_blink_rel/builds/73293)
5 years, 4 months ago (2015-08-11 14:09:14 UTC) #23
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1252683003/160001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1252683003/160001
5 years, 4 months ago (2015-08-13 02:30:37 UTC) #26
commit-bot: I haz the power
Try jobs failed on following builders: linux_blink_rel on tryserver.blink (JOB_FAILED, http://build.chromium.org/p/tryserver.blink/builders/linux_blink_rel/builds/75083)
5 years, 4 months ago (2015-08-13 03:08:06 UTC) #28
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1252683003/180001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1252683003/180001
5 years, 4 months ago (2015-08-13 05:04:20 UTC) #31
commit-bot: I haz the power
Committed patchset #10 (id:180001) as https://src.chromium.org/viewvc/blink?view=rev&revision=200467
5 years, 4 months ago (2015-08-13 06:07:28 UTC) #32
sof
If a Node moves from document A to document B, how is that accounted for?
5 years, 4 months ago (2015-08-22 06:13:26 UTC) #34
haraken
On 2015/08/22 06:13:26, sof wrote: > If a Node moves from document A to document ...
5 years, 4 months ago (2015-08-22 08:01:10 UTC) #35
sof
5 years, 4 months ago (2015-08-22 18:53:41 UTC) #36
Message was sent while issue was closed.
On 2015/08/22 08:01:10, haraken wrote:
> On 2015/08/22 06:13:26, sof wrote:
> > If a Node moves from document A to document B, how is that accounted for?
> 
> Then removedFrom() is called for A and insertedTo() is called for B, isn't it?

Yes, it is - I can see the code path now. Just wondered if there was a fast path
that didn't, which could have helped explain the counting unsync.

Powered by Google App Engine
This is Rietveld 408576698