<?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>140123</bug_id>
          
          <creation_ts>2015-01-06 05:20:11 -0800</creation_ts>
          <short_desc>REGRESSION (r177876): 35% regression in Parser/html5-full-render</short_desc>
          <delta_ts>2015-01-07 01:43:39 -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>
          
          <blocked>140015</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>mitz</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>ossy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1058988</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2015-01-06 05:20:11 -0800</bug_when>
    <thetext>https://perf.webkit.org/#mode=charts&amp;chartList=%5B%5B%22mac-mavericks%22%2C%22Parser%2Fhtml5-full-render%3ATime%22%5D%5D</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1058990</commentid>
    <comment_count>1</comment_count>
      <attachid>244053</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2015-01-06 05:28:14 -0800</bug_when>
    <thetext>Created attachment 244053
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1059052</commentid>
    <comment_count>2</comment_count>
      <attachid>244053</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-01-06 10:45:11 -0800</bug_when>
    <thetext>Comment on attachment 244053
patch

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

&gt; Source/WebCore/platform/graphics/SimpleFontData.cpp:443
&gt;  RefPtr&lt;SimpleFontData&gt; SimpleFontData::systemFallbackFontDataForCharacter(UChar32 c, const FontDescription&amp; description, bool isForPlatformFont) const

Would be nice to name it &quot;character&quot; instead of &quot;c&quot;.

&gt; Source/WebCore/platform/graphics/SimpleFontData.cpp:455
&gt; +        if (c &lt;= 0xFFFF) {

I think we should use U_IS_BMP here.

&gt; Source/WebCore/platform/graphics/SimpleFontData.cpp:480
&gt; +        Vector&lt;std::pair&lt;UChar32, unsigned&gt;&gt; toRemove;

Inline capacity here, maybe?

&gt; Source/WebCore/platform/graphics/SimpleFontData.cpp:484
&gt; +        for (auto&amp; entry : characterMap) {
&gt; +            if (entry.value == this)
&gt; +                toRemove.append(entry.key);
&gt; +        }

Should we have a map in the reverse direction to avoid this iteration?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1059081</commentid>
    <comment_count>3</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2015-01-06 11:38:37 -0800</bug_when>
    <thetext>https://trac.webkit.org/r177979</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1059089</commentid>
    <comment_count>4</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2015-01-06 11:42:31 -0800</bug_when>
    <thetext>&gt; Should we have a map in the reverse direction to avoid this iteration?

I suspect it is fine as-is. The GlyphPageTree code did a comparable crawl and I don&apos;t think we ever had problems with it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1059107</commentid>
    <comment_count>5</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2015-01-06 12:07:35 -0800</bug_when>
    <thetext>...and https://trac.webkit.org/r177984</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1059355</commentid>
    <comment_count>6</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2015-01-07 01:43:39 -0800</bug_when>
    <thetext>The bot says performance is back where it was.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>244053</attachid>
            <date>2015-01-06 05:28:14 -0800</date>
            <delta_ts>2015-01-06 10:45:11 -0800</delta_ts>
            <desc>patch</desc>
            <filename>system-fallback-cache-2.patch</filename>
            <type>text/plain</type>
            <size>4867</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3Nzk1NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDE1LTAxLTA2ICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OIChyMTc3ODc2
KTogMzUlIHJlZ3Jlc3Npb24gaW4gUGFyc2VyL2h0bWw1LWZ1bGwtcmVuZGVyCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDAxMjMKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZXNvbHZpbmcgc3lzdGVtIGZh
bGxiYWNrcyBpcyBleHRyZW1lbHkgc2xvdy4gR2x5cGhQYWdlVHJlZSB1c2VkIHRvIGNhY2hlIHRo
b3NlIGdsb2JhbGx5LgorCisgICAgICAgIFRoaXMgcGF0Y2ggaW1wbGVtZW50cyBhIGdsb2JhbCBj
YWNoZSBmb3Igc3lzdGVtIGZhbGxiYWNrcy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L1NpbXBsZUZvbnREYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUZvbnREYXRhOjp+
U2ltcGxlRm9udERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6c3lzdGVtRmFsbGJhY2tDYWNoZSk6
CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVGb250RGF0YTo6c3lzdGVtRmFsbGJhY2tGb250RGF0
YUZvckNoYXJhY3Rlcik6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVGb250RGF0YTo6cmVtb3Zl
RnJvbVN5c3RlbUZhbGxiYWNrQ2FjaGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1Np
bXBsZUZvbnREYXRhLmg6CisKIDIwMTUtMDEtMDYgIFNoaXZha3VtYXIgSk0gIDxzaGl2YS5qbUBz
YW1zdW5nLmNvbT4KIAogICAgICAgICBGaXggVW51c2VkIHBhcmFtZXRlciB3YXJuaW5nIGluIFdl
YmNvcmUgYmluZGluZ3MuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9T
aW1wbGVGb250RGF0YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvU2ltcGxlRm9udERhdGEuY3BwCShyZXZpc2lvbiAxNzc5NTIpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTE1Niw2ICsxNTYsOCBAQCBTaW1wbGVGb250RGF0YTo6flNpbXBsZUZvbnREYXRhKCkK
IHsKICAgICBpZiAoIW1fZm9udERhdGEpCiAgICAgICAgIHBsYXRmb3JtRGVzdHJveSgpOworCisg
ICAgcmVtb3ZlRnJvbVN5c3RlbUZhbGxiYWNrQ2FjaGUoKTsKIH0KIAogY29uc3QgU2ltcGxlRm9u
dERhdGEqIFNpbXBsZUZvbnREYXRhOjpzaW1wbGVGb250RGF0YUZvckNoYXJhY3RlcihVQ2hhcjMy
KSBjb25zdApAQCAtNDI4LDIwICs0MzAsNjEgQEAgYm9vbCBTaW1wbGVGb250RGF0YTo6YXBwbHlU
cmFuc2Zvcm1zKEdseQogI2VuZGlmCiB9CiAKKy8vIEZvbnREYXRhcyBhcmUgbm90IHJlZmNvdW50
ZWQgdG8gYXZvaWQgY3ljbGVzLgordHlwZWRlZiBIYXNoTWFwPHN0ZDo6cGFpcjxVQ2hhcjMyLCB1
bnNpZ25lZD4sIFNpbXBsZUZvbnREYXRhKj4gQ2hhcmFjdGVyRmFsbGJhY2tNYXA7Cit0eXBlZGVm
IEhhc2hNYXA8Y29uc3QgU2ltcGxlRm9udERhdGEqLCBDaGFyYWN0ZXJGYWxsYmFja01hcD4gU3lz
dGVtRmFsbGJhY2tDYWNoZTsKKworc3RhdGljIFN5c3RlbUZhbGxiYWNrQ2FjaGUmIHN5c3RlbUZh
bGxiYWNrQ2FjaGUoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTeXN0ZW1GYWxsYmFj
a0NhY2hlPiBtYXA7CisgICAgcmV0dXJuIG1hcC5nZXQoKTsKK30KKwogUmVmUHRyPFNpbXBsZUZv
bnREYXRhPiBTaW1wbGVGb250RGF0YTo6c3lzdGVtRmFsbGJhY2tGb250RGF0YUZvckNoYXJhY3Rl
cihVQ2hhcjMyIGMsIGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIGJvb2wgaXNG
b3JQbGF0Zm9ybUZvbnQpIGNvbnN0CiB7Ci0gICAgVUNoYXIgY29kZVVuaXRzWzJdOwotICAgIGlu
dCBjb2RlVW5pdHNMZW5ndGg7Ci0gICAgaWYgKGMgPD0gMHhGRkZGKSB7Ci0gICAgICAgIGNvZGVV
bml0c1swXSA9IEZvbnQ6Om5vcm1hbGl6ZVNwYWNlcyhjKTsKLSAgICAgICAgY29kZVVuaXRzTGVu
Z3RoID0gMTsKLSAgICB9IGVsc2UgewotICAgICAgICBjb2RlVW5pdHNbMF0gPSBVMTZfTEVBRChj
KTsKLSAgICAgICAgY29kZVVuaXRzWzFdID0gVTE2X1RSQUlMKGMpOwotICAgICAgICBjb2RlVW5p
dHNMZW5ndGggPSAyOworICAgIGF1dG8gZm9udEFkZFJlc3VsdCA9IHN5c3RlbUZhbGxiYWNrQ2Fj
aGUoKS5hZGQodGhpcywgQ2hhcmFjdGVyRmFsbGJhY2tNYXAoKSk7CisKKyAgICBhdXRvIGtleSA9
IHN0ZDo6bWFrZV9wYWlyKGMsIGlzRm9yUGxhdGZvcm1Gb250KTsKKyAgICBhdXRvIGNoYXJhY3Rl
ckFkZFJlc3VsdCA9IGZvbnRBZGRSZXN1bHQuaXRlcmF0b3ItPnZhbHVlLmFkZChrZXksIG51bGxw
dHIpOworCisgICAgU2ltcGxlRm9udERhdGEqJiBmYWxsYmFja0ZvbnREYXRhID0gY2hhcmFjdGVy
QWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZTsKKworICAgIGlmICghZmFsbGJhY2tGb250RGF0YSkg
eworICAgICAgICBVQ2hhciBjb2RlVW5pdHNbMl07CisgICAgICAgIGludCBjb2RlVW5pdHNMZW5n
dGg7CisgICAgICAgIGlmIChjIDw9IDB4RkZGRikgeworICAgICAgICAgICAgY29kZVVuaXRzWzBd
ID0gRm9udDo6bm9ybWFsaXplU3BhY2VzKGMpOworICAgICAgICAgICAgY29kZVVuaXRzTGVuZ3Ro
ID0gMTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGNvZGVVbml0c1swXSA9IFUxNl9M
RUFEKGMpOworICAgICAgICAgICAgY29kZVVuaXRzWzFdID0gVTE2X1RSQUlMKGMpOworICAgICAg
ICAgICAgY29kZVVuaXRzTGVuZ3RoID0gMjsKKyAgICAgICAgfQorCisgICAgICAgIGZhbGxiYWNr
Rm9udERhdGEgPSBmb250Q2FjaGUoKS5zeXN0ZW1GYWxsYmFja0ZvckNoYXJhY3RlcnMoZGVzY3Jp
cHRpb24sIHRoaXMsIGZhbHNlLCBjb2RlVW5pdHMsIGNvZGVVbml0c0xlbmd0aCkuZ2V0KCk7Cisg
ICAgICAgIGlmIChmYWxsYmFja0ZvbnREYXRhKQorICAgICAgICAgICAgZmFsbGJhY2tGb250RGF0
YS0+bV9pc1VzZWRJblN5c3RlbUZhbGxiYWNrQ2FjaGUgPSB0cnVlOwogICAgIH0KIAotICAgIHJl
dHVybiBmb250Q2FjaGUoKS5zeXN0ZW1GYWxsYmFja0ZvckNoYXJhY3RlcnMoZGVzY3JpcHRpb24s
IHRoaXMsIGlzRm9yUGxhdGZvcm1Gb250LCBjb2RlVW5pdHMsIGNvZGVVbml0c0xlbmd0aCk7Cisg
ICAgcmV0dXJuIGZhbGxiYWNrRm9udERhdGE7Cit9CisKK3ZvaWQgU2ltcGxlRm9udERhdGE6OnJl
bW92ZUZyb21TeXN0ZW1GYWxsYmFja0NhY2hlKCkKK3sKKyAgICBzeXN0ZW1GYWxsYmFja0NhY2hl
KCkucmVtb3ZlKHRoaXMpOworCisgICAgaWYgKCFtX2lzVXNlZEluU3lzdGVtRmFsbGJhY2tDYWNo
ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgZm9yIChhdXRvJiBjaGFyYWN0ZXJNYXAgOiBzeXN0
ZW1GYWxsYmFja0NhY2hlKCkudmFsdWVzKCkpIHsKKyAgICAgICAgVmVjdG9yPHN0ZDo6cGFpcjxV
Q2hhcjMyLCB1bnNpZ25lZD4+IHRvUmVtb3ZlOworICAgICAgICBmb3IgKGF1dG8mIGVudHJ5IDog
Y2hhcmFjdGVyTWFwKSB7CisgICAgICAgICAgICBpZiAoZW50cnkudmFsdWUgPT0gdGhpcykKKyAg
ICAgICAgICAgICAgICB0b1JlbW92ZS5hcHBlbmQoZW50cnkua2V5KTsKKyAgICAgICAgfQorICAg
ICAgICBmb3IgKGF1dG8mIGtleSA6IHRvUmVtb3ZlKQorICAgICAgICAgICAgY2hhcmFjdGVyTWFw
LnJlbW92ZShrZXkpOworICAgIH0KIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2ltcGxlRm9udERhdGEuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5o
CShyZXZpc2lvbiAxNzc5NTIpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9T
aW1wbGVGb250RGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMzMsNiArMjMzLDggQEAgcHJpdmF0
ZToKICAgICB2aXJ0dWFsIGNvbnN0IFNpbXBsZUZvbnREYXRhKiBzaW1wbGVGb250RGF0YUZvckNo
YXJhY3RlcihVQ2hhcjMyKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGNvbnN0IFNpbXBs
ZUZvbnREYXRhJiBzaW1wbGVGb250RGF0YUZvckZpcnN0UmFuZ2UoKSBjb25zdCBvdmVycmlkZTsK
IAorICAgIHZvaWQgcmVtb3ZlRnJvbVN5c3RlbUZhbGxiYWNrQ2FjaGUoKTsKKwogI2lmIFBMQVRG
T1JNKFdJTikKICAgICB2b2lkIGluaXRHRElGb250KCk7CiAgICAgdm9pZCBwbGF0Zm9ybUNvbW1v
bkRlc3Ryb3koKTsKQEAgLTI2NCw2ICsyNjYsOSBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBtX2lz
VGV4dE9yaWVudGF0aW9uRmFsbGJhY2s7CiAgICAgYm9vbCBtX2lzQnJva2VuSWRlb2dyYXBoRmFs
bGJhY2s7CisKKyAgICBib29sIG1faXNVc2VkSW5TeXN0ZW1GYWxsYmFja0NhY2hlIHsgZmFsc2Ug
fTsKKwogICAgIG11dGFibGUgUmVmUHRyPE9wZW5UeXBlTWF0aERhdGE+IG1fbWF0aERhdGE7CiAj
aWYgRU5BQkxFKE9QRU5UWVBFX1ZFUlRJQ0FMKQogICAgIFJlZlB0cjxPcGVuVHlwZVZlcnRpY2Fs
RGF0YT4gbV92ZXJ0aWNhbERhdGE7Cg==
</data>
<flag name="review"
          id="268975"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>