|
Devirtualize Visitor and remove inline visitor specialization.
The Blink GC infrastructure requires its managed objects to provide
a "trace()" method which will visit all the heap references it keeps
into the Blink GC heap, by calling the "trace()" method on each of
these via an incoming |visitor| argument (a Visitor.)
The Visitor interface is really only used for that, i.e., to perform GC
marking, so the flexibility it provides by way of overridable virtual
methods, is unused. And it slows down the GC marking phase, something
the specialized "inline visitor" (InlineGlobalMarkingVisitor) demonstrated,
which devirtualized the mark() method, with noticable improvements to
overall GC marking times.
Given that and Visitor's use, devirtualize Visitor entirely and make
it a GC marking visitor and nothing else. Besides removing code complexity,
this also allows the removal of InlineGlobalMarkingVisitor along with
all the specialized trace() implementation methods that we emit for each
Blink GC managed object.
Performance numbers show a ~10% improvement on marking times for
oilpan_gc_times.{tough_animation_cases, blink_perf_stress}; code size
(Android(ARM) official build, content shell) is 180k less.
R=
BUG= 683019
Review-Url: https://codereview.chromium.org/2652923002
Cr-Commit-Position: refs/heads/master@{#445993}
Committed: https://chromium.googlesource.com/chromium/src/+/66ac8d1a05c988aa07a1da9e1613c83ccdc304ad
Total comments: 4
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+350 lines, -688 lines) |
Patch |
|
M |
third_party/WebKit/Source/bindings/core/v8/ScriptPromiseProperty.h
|
View
|
|
1 chunk |
+0 lines, -12 lines |
0 comments
|
Download
|
|
M |
third_party/WebKit/Source/core/dom/StaticNodeList.h
|
View
|
|
1 chunk |
+0 lines, -11 lines |
0 comments
|
Download
|
|
M |
third_party/WebKit/Source/core/loader/LinkLoaderClient.h
|
View
|
1
2
3
4
|
1 chunk |
+1 line, -2 lines |
0 comments
|
Download
|
|
M |
third_party/WebKit/Source/platform/heap/BUILD.gn
|
View
|
|
2 chunks |
+1 line, -3 lines |
0 comments
|
Download
|
|
M |
third_party/WebKit/Source/platform/heap/GarbageCollected.h
|
View
|
|
3 chunks |
+0 lines, -5 lines |
0 comments
|
Download
|
|
M |
third_party/WebKit/Source/platform/heap/Handle.h
|
View
|
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
M |
third_party/WebKit/Source/platform/heap/Heap.h
|
View
|
1
2
|
3 chunks |
+8 lines, -2 lines |
0 comments
|
Download
|
|
M |
third_party/WebKit/Source/platform/heap/Heap.cpp
|
View
|
1
2
3
|
2 chunks |
+24 lines, -1 line |
0 comments
|
Download
|
|
M |
third_party/WebKit/Source/platform/heap/HeapPage.h
|
View
|
1
|
4 chunks |
+22 lines, -0 lines |
0 comments
|
Download
|
|
M |
third_party/WebKit/Source/platform/heap/HeapPage.cpp
|
View
|
1
|
3 chunks |
+32 lines, -3 lines |
0 comments
|
Download
|
|
M |
third_party/WebKit/Source/platform/heap/HeapTest.cpp
|
View
|
|
8 chunks |
+39 lines, -224 lines |
0 comments
|
Download
|
|
D |
third_party/WebKit/Source/platform/heap/InlinedGlobalMarkingVisitor.h
|
View
|
|
1 chunk |
+0 lines, -60 lines |
0 comments
|
Download
|
|
D |
third_party/WebKit/Source/platform/heap/MarkingVisitor.h
|
View
|
|
1 chunk |
+0 lines, -62 lines |
0 comments
|
Download
|
|
D |
third_party/WebKit/Source/platform/heap/MarkingVisitorImpl.h
|
View
|
|
1 chunk |
+0 lines, -124 lines |
0 comments
|
Download
|
|
M |
third_party/WebKit/Source/platform/heap/Member.h
|
View
|
|
1 chunk |
+1 line, -2 lines |
0 comments
|
Download
|
|
M |
third_party/WebKit/Source/platform/heap/RunAllTests.cpp
|
View
|
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
M |
third_party/WebKit/Source/platform/heap/TraceTraits.h
|
View
|
|
3 chunks |
+0 lines, -14 lines |
0 comments
|
Download
|
|
M |
third_party/WebKit/Source/platform/heap/Visitor.h
|
View
|
|
11 chunks |
+75 lines, -148 lines |
0 comments
|
Download
|
|
M |
third_party/WebKit/Source/platform/heap/Visitor.cpp
|
View
|
|
3 chunks |
+7 lines, -3 lines |
0 comments
|
Download
|
|
A |
third_party/WebKit/Source/platform/heap/VisitorImpl.h
|
View
|
|
1 chunk |
+137 lines, -0 lines |
0 comments
|
Download
|
|
M |
third_party/WebKit/Source/web/OpenedFrameTracker.h
|
View
|
|
2 chunks |
+0 lines, -2 lines |
0 comments
|
Download
|
|
M |
third_party/WebKit/Source/web/OpenedFrameTracker.cpp
|
View
|
|
1 chunk |
+0 lines, -3 lines |
0 comments
|
Download
|
|
M |
third_party/WebKit/Source/web/WebFrame.cpp
|
View
|
|
1 chunk |
+0 lines, -1 line |
0 comments
|
Download
|
|
M |
third_party/WebKit/Source/web/WebMemoryStatistics.cpp
|
View
|
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
M |
third_party/WebKit/public/web/WebFrame.h
|
View
|
|
2 chunks |
+0 lines, -3 lines |
0 comments
|
Download
|
Total messages: 31 (21 generated)
|