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

Issue 803443002: Introduce InlinedGlobalMarkingVisitor

Created:
6 years ago by kouhei (in TOK)
Modified:
6 years ago
Reviewers:
oilpan-reviews
CC:
blink-reviews, krit, Mads Ager (chromium), kouhei+svg_chromium.org, fs, aandrey+blink_chromium.org, oilpan-reviews, ed+blinkwatch_opera.com, f(malita), gyuyoung.kim_webkit.org, Mikhail, Stephen Chennney, pdr+svgwatchlist_chromium.org, kouhei+heap_chromium.org, blink-reviews-wtf_chromium.org, rwlbuis
Base URL:
https://chromium.googlesource.com/chromium/blink.git@master
Target Ref:
refs/heads/master
Project:
blink
Visibility:
Public.

Description

Introduce InlinedGlobalMarkingVisitor This CL introduces InlinedGlobalMarkingVisitor to devirtualize and inline the most common Visitor implementation, MarkingVisitor<GlobalMarking>. BUG=420515

Patch Set 1 #

Unified diffs Side-by-side diffs Delta from patch set Stats (+507 lines, -59 lines) Patch
M Source/core/svg/SVGAngle.h View 4 chunks +4 lines, -4 lines 0 comments Download
M Source/core/svg/SVGAngle.cpp View 2 chunks +2 lines, -2 lines 0 comments Download
M Source/core/svg/SVGIntegerOptionalInteger.h View 2 chunks +2 lines, -2 lines 0 comments Download
M Source/core/svg/SVGIntegerOptionalInteger.cpp View 1 chunk +1 line, -1 line 0 comments Download
M Source/core/svg/SVGLength.h View 2 chunks +3 lines, -1 line 0 comments Download
M Source/core/svg/SVGLength.cpp View 1 chunk +14 lines, -0 lines 0 comments Download
M Source/core/svg/SVGNumberOptionalNumber.h View 2 chunks +2 lines, -2 lines 0 comments Download
M Source/core/svg/SVGNumberOptionalNumber.cpp View 1 chunk +1 line, -1 line 0 comments Download
M Source/core/svg/SVGPathSegList.h View 2 chunks +2 lines, -2 lines 0 comments Download
M Source/core/svg/SVGPathSegList.cpp View 1 chunk +1 line, -1 line 0 comments Download
M Source/core/svg/properties/SVGListPropertyHelper.h View 2 chunks +2 lines, -2 lines 0 comments Download
M Source/core/svg/properties/SVGProperty.h View 2 chunks +2 lines, -2 lines 0 comments Download
M Source/core/svg/properties/SVGPropertyHelper.h View 1 chunk +1 line, -1 line 0 comments Download
M Source/platform/heap/Heap.h View 7 chunks +88 lines, -7 lines 0 comments Download
M Source/platform/heap/Heap.cpp View 3 chunks +8 lines, -15 lines 0 comments Download
M Source/platform/heap/Visitor.h View 7 chunks +342 lines, -10 lines 0 comments Download
M Source/wtf/TypeTraits.h View 3 chunks +27 lines, -2 lines 0 comments Download
M Source/wtf/Vector.h View 3 chunks +5 lines, -4 lines 0 comments Download

Messages

Total messages: 4 (1 generated)
kouhei (in TOK)
WIP. This is a "preview" of inlining/devirtualizing MarkingVisitor<GlobalMarking>. This CL improves BlinkGC.stress-large-SVGLengthList test by 25%. ...
6 years ago (2014-12-12 05:49:02 UTC) #2
haraken
On 2014/12/12 05:49:02, kouhei wrote: > WIP. This is a "preview" of inlining/devirtualizing > MarkingVisitor<GlobalMarking>. ...
6 years ago (2014-12-12 06:07:31 UTC) #3
kouhei (in TOK)
6 years ago (2014-12-15 03:20:03 UTC) #4
On 2014/12/12 06:07:31, haraken wrote:
> On 2014/12/12 05:49:02, kouhei wrote:
> > WIP. This is a "preview" of inlining/devirtualizing
> > MarkingVisitor<GlobalMarking>.
> > This CL improves BlinkGC.stress-large-SVGLengthList test by 25%.
> 
> 25% in marking time, or 25% in total execution time? Either way, this looks
like
> a great improvement.
25% in marking time, as the test only measures GC marking time.

> > The implementation in heap/ is obviously not complete, but hopefully PS1
will
> > give some rough idea on how the trace methods on GC classes will be
modified.
> > I'd appreciate if you would take a look on svg/ changes and give me
feedback.
> 
> I think this CL is a right way to go.
Thanks!

> Let me ask a couple of questions:
> 
> - GC_PLUGIN_IGNORE("") is going to be removed, right?
Yes. They are going to be removed.

> - What's a difference between DEFINE_TRACE(X), DEFINE_INLINE_TRACE(,override)
> and DEFINE_INLINE_TRACE(virtual,)? Do we need to distinguish them?
DECLARE_TRACE(X) replaces trace() declaration in X.h
DEFINE_INLINE_TRACE() replaces inline trace definition in X.h
DEFINE_TRACE() replaces trace definition in X.cpp

> - What's the difference in binary size of release builds? Can you roughly
> estimate how much this change will increase the binary size if we apply the
> macros to all trace methods in the code base?
There are about 1530 trace() definitions, and each of them currently around 64
bytes are expected to double its size, so roughly 100kB binary size increase is
expected.

Powered by Google App Engine
This is Rietveld 408576698