<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>111117</bug_id>
          
          <creation_ts>2013-02-28 14:59:52 -0800</creation_ts>
          <short_desc>REGRESSION(r144318) 1-7% perf. regression on SVG/SvgHitTesting</short_desc>
          <delta_ts>2013-03-01 12:48:51 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Dave Hyatt">hyatt</assigned_to>
          <cc>eric</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>hyatt</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>ojan</cc>
    
    <cc>pdr</cc>
    
    <cc>schenney</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>WebkitBugTracker</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>844514</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-02-28 14:59:52 -0800</bug_when>
    <thetext>https://perf.webkit.org/#mode=charts&amp;chartList=%5B%5B%22Chromium%20Linux%22%2C%22SVG%2FSvgHitTesting%3ATime%22%5D%2C%5B%22Chromium%20Mac%22%2C%22SVG%2FSvgHitTesting%3ATime%22%5D%2C%5B%22Chromium%20Win%22%2C%22SVG%2FSvgHitTesting%3ATime%22%5D%2C%5B%22EFL%22%2C%22SVG%2FSvgHitTesting%3ATime%22%5D%2C%5B%22Mac%20Lion%22%2C%22SVG%2FSvgHitTesting%3ATime%22%5D%2C%5B%22Mac%20MountainLion%22%2C%22SVG%2FSvgHitTesting%3ATime%22%5D%2C%5B%22Qt%205.0%22%2C%22SVG%2FSvgHitTesting%3ATime%22%5D%2C%5B%22Qt%205.0%20WebKit%202%22%2C%22SVG%2FSvgHitTesting%3ATime%22%5D%5D&amp;zoom=%5B1362005933164.2751%2C1362074261931.215%5D

It seems like we have 1-7% regressions depending on platform.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844557</commentid>
    <comment_count>1</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2013-02-28 15:38:01 -0800</bug_when>
    <thetext>Looking into it. Will take me a bit to get a good build to profile with. I eyeballed the code and really don&apos;t see any explanation for it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844740</commentid>
    <comment_count>2</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2013-02-28 19:51:30 -0800</bug_when>
    <thetext>I think this is just because of allocating the Vector of LayerFragments to be way too big. Narrowing it to a size of 1 seems to get the bulk of the time back. Patch coming soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845183</commentid>
    <comment_count>3</comment_count>
      <attachid>190969</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2013-03-01 08:02:58 -0800</bug_when>
    <thetext>Created attachment 190969
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845194</commentid>
    <comment_count>4</comment_count>
      <attachid>190969</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-03-01 08:20:16 -0800</bug_when>
    <thetext>Comment on attachment 190969
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=190969&amp;action=review

r=me

&gt; Source/WebCore/ChangeLog:7
&gt; +        Make sure the allocated vector has a capacity of 1, since that is
&gt; +        far and away the most common case.

You could go higher than 1 if you wanted to, since these are always on the stack anyway.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845196</commentid>
    <comment_count>5</comment_count>
      <attachid>190969</attachid>
    <who name="Stephen Chenney">schenney</who>
    <bug_when>2013-03-01 08:23:07 -0800</bug_when>
    <thetext>Comment on attachment 190969
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=190969&amp;action=review

&gt; Source/WebCore/rendering/RenderFlowThread.h:43
&gt; +typedef Vector&lt;LayerFragment, 1&gt; LayerFragments;

I presume that all the compilers can correctly handle the multiple identical declarations of LayerFragments that will occur when this header and RenderLayer.h are included in the same source file. To be safe, let&apos;s let it run through EWS on all platforms first.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845420</commentid>
    <comment_count>6</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2013-03-01 12:48:27 -0800</bug_when>
    <thetext>Fixed in r144484.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845422</commentid>
    <comment_count>7</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2013-03-01 12:48:51 -0800</bug_when>
    <thetext>I believe this was the cause of the slowdown. We can re-open if this isn&apos;t good enough.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190969</attachid>
            <date>2013-03-01 08:02:58 -0800</date>
            <delta_ts>2013-03-01 08:23:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>4290</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0NDQwOCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBACisyMDEzLTAyLTI4ICBEYXZpZCBI
eWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OKHIxNDQzMTgpIDEt
NyUgcGVyZi4gcmVncmVzc2lvbiBvbiBTVkcvU3ZnSGl0VGVzdGluZworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTExMTE3CisKKyAgICAgICAgTWFrZSBz
dXJlIHRoZSBhbGxvY2F0ZWQgdmVjdG9yIGhhcyBhIGNhcGFjaXR5IG9mIDEsIHNpbmNlIHRoYXQg
aXMKKyAgICAgICAgZmFyIGFuZCBhd2F5IHRoZSBtb3N0IGNvbW1vbiBjYXNlLgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckZsb3dUaHJlYWQuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJMYXllci5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlck11bHRpQ29sdW1uU2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck11bHRpQ29s
dW1uU2V0Ojpjb2xsZWN0TGF5ZXJGcmFnbWVudHMpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJNdWx0aUNvbHVtblNldC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJSZWdpb24uaDoK
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVnaW9uOjpjb2xs
ZWN0TGF5ZXJGcmFnbWVudHMpOgorCiAyMDEzLTAyLTI4ICBBbmt1ciBUYWx5ICA8YXRhbHlAZ29v
Z2xlLmNvbT4KIAogICAgICAgICBXZWJLaXQgQVBJIGZvciBlbmFibGluZyBET00gbG9nZ2luZyBm
b3IgY2VydGFpbiB3b3JsZHMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJG
bG93VGhyZWFkLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckZsb3dUaHJlYWQuaAkocmV2aXNpb24gMTQ0Mzk5KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckZsb3dUaHJlYWQuaAkod29ya2luZyBjb3B5KQpAQCAtNDAsNyArNDAsNyBAQAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdHJ1Y3QgTGF5ZXJGcmFnbWVudDsKLXR5cGVkZWYgVmVj
dG9yPExheWVyRnJhZ21lbnQ+IExheWVyRnJhZ21lbnRzOwordHlwZWRlZiBWZWN0b3I8TGF5ZXJG
cmFnbWVudCwgMT4gTGF5ZXJGcmFnbWVudHM7CiBjbGFzcyBSZW5kZXJGbG93VGhyZWFkOwogY2xh
c3MgUmVuZGVyU3R5bGU7CiBjbGFzcyBSZW5kZXJSZWdpb247CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAkocmV2aXNpb24gMTQ0Mzk5KQorKysgU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5Nyw3ICsyOTcs
NyBAQCBwdWJsaWM6CiAgICAgTGF5b3V0UmVjdCBwYWdpbmF0aW9uQ2xpcDsKIH07CiAKLXR5cGVk
ZWYgVmVjdG9yPExheWVyRnJhZ21lbnQ+IExheWVyRnJhZ21lbnRzOwordHlwZWRlZiBWZWN0b3I8
TGF5ZXJGcmFnbWVudCwgMT4gTGF5ZXJGcmFnbWVudHM7CiAKIGNsYXNzIFJlbmRlckxheWVyIDog
cHVibGljIFNjcm9sbGFibGVBcmVhIHsKIHB1YmxpYzoKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNldC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uU2V0LmNwcAkocmV2aXNpb24gMTQ0Mzk5
KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uU2V0LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzQ0LDcgKzM0NCw3IEBAIHZvaWQgUmVuZGVyTXVsdGlDb2x1bW5T
ZXQ6OnJlcGFpbnRGbG93VGgKICAgICB9CiB9CiAKLXZvaWQgUmVuZGVyTXVsdGlDb2x1bW5TZXQ6
OmNvbGxlY3RMYXllckZyYWdtZW50cyhWZWN0b3I8TGF5ZXJGcmFnbWVudD4mIGZyYWdtZW50cywg
Y29uc3QgTGF5b3V0UmVjdCYgbGF5ZXJCb3VuZGluZ0JveCwgY29uc3QgTGF5b3V0UmVjdCYgZGly
dHlSZWN0KQordm9pZCBSZW5kZXJNdWx0aUNvbHVtblNldDo6Y29sbGVjdExheWVyRnJhZ21lbnRz
KExheWVyRnJhZ21lbnRzJiBmcmFnbWVudHMsIGNvbnN0IExheW91dFJlY3QmIGxheWVyQm91bmRp
bmdCb3gsIGNvbnN0IExheW91dFJlY3QmIGRpcnR5UmVjdCkKIHsKICAgICAvLyBQdXQgdGhlIGxh
eWVyIGJvdW5kcyBpbnRvIGZsb3cgdGhyZWFkLWxvY2FsIGNvb3JkaW5hdGVzIGJ5IGZsaXBwaW5n
IGl0IGZpcnN0LgogICAgIExheW91dFJlY3QgbGF5ZXJCb3VuZHNJbkZsb3dUaHJlYWQobGF5ZXJC
b3VuZGluZ0JveCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlD
b2x1bW5TZXQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TXVsdGlDb2x1bW5TZXQuaAkocmV2aXNpb24gMTQ0Mzk5KQorKysgU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uU2V0LmgJKHdvcmtpbmcgY29weSkKQEAgLTExMCw3ICsx
MTAsNyBAQCBwcml2YXRlOgogICAgIAogICAgIHZpcnR1YWwgdm9pZCByZXBhaW50Rmxvd1RocmVh
ZENvbnRlbnQoY29uc3QgTGF5b3V0UmVjdCYgcmVwYWludFJlY3QsIGJvb2wgaW1tZWRpYXRlKSBj
b25zdCBPVkVSUklERTsKIAotICAgIHZpcnR1YWwgdm9pZCBjb2xsZWN0TGF5ZXJGcmFnbWVudHMo
VmVjdG9yPExheWVyRnJhZ21lbnQ+JiwgY29uc3QgTGF5b3V0UmVjdCYgbGF5ZXJCb3VuZGluZ0Jv
eCwgY29uc3QgTGF5b3V0UmVjdCYgZGlydHlSZWN0KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZv
aWQgY29sbGVjdExheWVyRnJhZ21lbnRzKExheWVyRnJhZ21lbnRzJiwgY29uc3QgTGF5b3V0UmVj
dCYgbGF5ZXJCb3VuZGluZ0JveCwgY29uc3QgTGF5b3V0UmVjdCYgZGlydHlSZWN0KSBPVkVSUklE
RTsKIAogICAgIHZpcnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0OwogICAgIApJ
bmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uaAkocmV2aXNpb24gMTQ0
Mzk5KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5oCSh3b3JraW5n
IGNvcHkpCkBAIC0zNiw2ICszNiw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBM
YXllckZyYWdtZW50OwordHlwZWRlZiBWZWN0b3I8TGF5ZXJGcmFnbWVudCwgMT4gTGF5ZXJGcmFn
bWVudHM7CiBjbGFzcyBSZW5kZXJCb3g7CiBjbGFzcyBSZW5kZXJCb3hSZWdpb25JbmZvOwogY2xh
c3MgUmVuZGVyRmxvd1RocmVhZDsKQEAgLTEyOCw3ICsxMjksNyBAQCBwdWJsaWM6CiAgICAgCiAg
ICAgdmlydHVhbCB2b2lkIHJlcGFpbnRGbG93VGhyZWFkQ29udGVudChjb25zdCBMYXlvdXRSZWN0
JiByZXBhaW50UmVjdCwgYm9vbCBpbW1lZGlhdGUpIGNvbnN0OwogCi0gICAgdmlydHVhbCB2b2lk
IGNvbGxlY3RMYXllckZyYWdtZW50cyhWZWN0b3I8TGF5ZXJGcmFnbWVudD4mLCBjb25zdCBMYXlv
dXRSZWN0JiwgY29uc3QgTGF5b3V0UmVjdCYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBjb2xsZWN0
TGF5ZXJGcmFnbWVudHMoTGF5ZXJGcmFnbWVudHMmLCBjb25zdCBMYXlvdXRSZWN0JiwgY29uc3Qg
TGF5b3V0UmVjdCYpIHsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBzZXRSZWdpb25PYmplY3Rz
UmVnaW9uU3R5bGUoKTsK
</data>
<flag name="review"
          id="211807"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>