<?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>194212</bug_id>
          
          <creation_ts>2019-02-03 22:48:15 -0800</creation_ts>
          <short_desc>[JSC] Make StaticStringImpl &amp; StaticSymbolImpl actually static</short_desc>
          <delta_ts>2019-03-15 14:58:40 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Template Framework</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>REOPENED</bug_status>
          <resolution></resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=185337</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>195641</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>mark.lam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1501747</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-02-03 22:48:15 -0800</bug_when>
    <thetext>Let&apos;s try it and see the performance impact. It possibly reduces the memory footprint.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1501748</commentid>
    <comment_count>1</comment_count>
      <attachid>361039</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-02-03 22:54:48 -0800</bug_when>
    <thetext>Created attachment 361039
Testing...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1501753</commentid>
    <comment_count>2</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2019-02-03 23:11:03 -0800</bug_when>
    <thetext>This would be the awesome!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1515043</commentid>
    <comment_count>3</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-03-11 15:27:46 -0700</bug_when>
    <thetext>*** Bug 195577 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1515046</commentid>
    <comment_count>4</comment_count>
      <attachid>364300</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-03-11 15:29:13 -0700</bug_when>
    <thetext>Created attachment 364300
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1515050</commentid>
    <comment_count>5</comment_count>
      <attachid>364300</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-03-11 15:32:41 -0700</bug_when>
    <thetext>Comment on attachment 364300
Patch

r=me if this does not regress performance.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1515052</commentid>
    <comment_count>6</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-03-11 15:35:07 -0700</bug_when>
    <thetext>(In reply to Mark Lam from comment #5)
&gt; Comment on attachment 364300 [details]
&gt; Patch
&gt; 
&gt; r=me if this does not regress performance.

Yes, let&apos;s monitor the bots!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1515057</commentid>
    <comment_count>7</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-03-11 15:37:48 -0700</bug_when>
    <thetext>Committed r242747: &lt;https://trac.webkit.org/changeset/242747&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1515063</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-03-11 15:43:36 -0700</bug_when>
    <thetext>&lt;rdar://problem/48786478&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1515068</commentid>
    <comment_count>9</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2019-03-11 16:05:14 -0700</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #0)
&gt; Let&apos;s try it and see the performance impact.

Waiting with bated breath. I would be super surprised if we don’t see performance impact.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1515194</commentid>
    <comment_count>10</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-03-11 19:19:30 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #9)
&gt; (In reply to Yusuke Suzuki from comment #0)
&gt; &gt; Let&apos;s try it and see the performance impact.
&gt; 
&gt; Waiting with bated breath. I would be super surprised if we don’t see
&gt; performance impact.

Yeah, in A/B test the result seems neutral. And I think it can be neutral since this change does not add additional load / store (isStatic()&apos;s flag resides in ref count number itself). But... I&apos;m not sure, and watching the bots.

If we can keep this change, we have a chance to put fully-static-atomic-string-hash-table in front of runtime atomic string table.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1515662</commentid>
    <comment_count>11</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-03-12 13:58:52 -0700</bug_when>
    <thetext>It seems that this is perf-neutral in iOS, however, it is a bit hard to check the performance difference right now since r242714 causes large difference, and this patch is involved in the patch set including r242714. I think,

1. Once rolling out this patch
2. See the performance difference
3. After r242714&apos;s related changes are landed, let&apos;s land it again and see performance difference

is better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1515666</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-03-12 14:00:06 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 195641</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1517028</commentid>
    <comment_count>13</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-03-15 11:23:54 -0700</bug_when>
    <thetext>Maybe, it is a good timing to land it again to see the performance effect!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1517130</commentid>
    <comment_count>14</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-03-15 14:29:14 -0700</bug_when>
    <thetext>This seemed to increase binary size quite significantly (and it goes down on the rollout).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1517160</commentid>
    <comment_count>15</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-03-15 14:58:40 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #14)
&gt; This seemed to increase binary size quite significantly (and it goes down on
&gt; the rollout).

Yes, this is because StringImpl::{ref,deref} code increases. (ReadOnly memory)
But if we can avoid all heap allocations for AtomicStringImpls (and other types of WTFString backed by StaticStringImpl) finally, I think we can get net win in dirty memory. (Still, StaticStringImpl includes pointer, so it can be seen as a dirty __DATA memory. But if it is in a shared cache, then it can be a complete ReadOnly memory).</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>361039</attachid>
            <date>2019-02-03 22:54:48 -0800</date>
            <delta_ts>2019-03-11 15:29:12 -0700</delta_ts>
            <desc>Testing...</desc>
            <filename>bug-194212-20190203225447.patch</filename>
            <type>text/plain</type>
            <size>1364</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwOTE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDEzY2E5MjIxZmQ5ZTFlMjAzOGZlNDI0
YjlmNjEzY2FhZjA4NDVlMzEuLjczODY5NTk0YjM4ZjRlOGMzMmQ5ZjMxZjcxNTBiNmNlZDI0Yzcx
MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTktMDItMDMgIFl1c3VrZSBTdXp1a2kgIDx5c3V6
dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBbSlNDXSBNYWtlIFN0YXRpY1N0cmluZ0ltcGwgJiBT
dGF0aWNTeW1ib2xJbXBsIGFjdHVhbGx5IHN0YXRpYworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk0MjEyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvdGV4dC9TdHJpbmdJbXBsLmg6CisgICAgICAg
IChXVEY6OlN0cmluZ0ltcGw6OnJlZik6CisgICAgICAgIChXVEY6OlN0cmluZ0ltcGw6OmRlcmVm
KToKKwogMjAxOS0wMi0wMyAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjI0MDg5Ni4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5oIGIvU291cmNlL1dURi93dGYvdGV4dC9T
dHJpbmdJbXBsLmgKaW5kZXggYmQwMWYyYzI2ODU5OWRkMTEwMGZmMTU3MmM1MWFhYWQ2MDZmM2Q5
Yy4uZTEzYzZkOTQ0MzIwMTk2ZGE3Mzc2NzE0N2MwYmMyNjk5MTVjNGRlOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmgKKysrIGIvU291cmNlL1dURi93dGYvdGV4
dC9TdHJpbmdJbXBsLmgKQEAgLTEwNDcsMTMgKzEwNDcsMTYgQEAgaW5saW5lIHZvaWQgU3RyaW5n
SW1wbDo6c2V0SGFzaCh1bnNpZ25lZCBoYXNoKSBjb25zdAogaW5saW5lIHZvaWQgU3RyaW5nSW1w
bDo6cmVmKCkKIHsKICAgICBTVFJJTkdfU1RBVFNfUkVGX1NUUklORygqdGhpcyk7Ci0KKyAgICBp
ZiAoaXNTdGF0aWMoKSkKKyAgICAgICAgcmV0dXJuOwogICAgIG1fcmVmQ291bnQgKz0gc19yZWZD
b3VudEluY3JlbWVudDsKIH0KIAogaW5saW5lIHZvaWQgU3RyaW5nSW1wbDo6ZGVyZWYoKQogewog
ICAgIFNUUklOR19TVEFUU19ERVJFRl9TVFJJTkcoKnRoaXMpOworICAgIGlmIChpc1N0YXRpYygp
KQorICAgICAgICByZXR1cm47CiAKICAgICB1bnNpZ25lZCB0ZW1wUmVmQ291bnQgPSBtX3JlZkNv
dW50IC0gc19yZWZDb3VudEluY3JlbWVudDsKICAgICBpZiAoIXRlbXBSZWZDb3VudCkgewo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>364300</attachid>
            <date>2019-03-11 15:29:13 -0700</date>
            <delta_ts>2019-03-11 15:32:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194212-20190311152912.patch</filename>
            <type>text/plain</type>
            <size>1533</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyNzQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDY0NjZjYmE3ZDRiODY5NDQ3Zjg2NDlh
MGNmZmRhOTgwMmI2Mjg4YzIuLjlkOTlkMzlkMThhOGFiZGJmZjYxOGIwODhkODQxZjkyMmJlYzlm
YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTktMDMtMTEgIFl1c3VrZSBTdXp1a2kgIDx5c3V6
dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBbSlNDXSBNYWtlIFN0YXRpY1N0cmluZ0ltcGwgJiBT
dGF0aWNTeW1ib2xJbXBsIGFjdHVhbGx5IHN0YXRpYworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk0MjEyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQXZvaWQgbXV0YXRpb24gb250byByZWZjb3VudHMgaWYg
YGlzU3RhdGljKClgIHJldHVybnMgdHJ1ZSBzbyB0aGF0IHRoZSBjb250ZW50IG9mIFN0YXRpY1N0
cmluZ0ltcGwgbmV2ZXIgZ2V0cyBtb2RpZmllZC4KKworICAgICAgICAqIHd0Zi90ZXh0L1N0cmlu
Z0ltcGwuaDoKKyAgICAgICAgKFdURjo6U3RyaW5nSW1wbDo6cmVmKToKKyAgICAgICAgKFdURjo6
U3RyaW5nSW1wbDo6ZGVyZWYpOgorCiAyMDE5LTAzLTExICBTaWh1aSBMaXUgIDxzaWh1aV9saXVA
YXBwbGUuY29tPgogCiAgICAgICAgIENyYXNoIHVuZGVyIFdlYkNvcmU6OklEQkRhdGFiYXNlOjpj
b25uZWN0aW9uVG9TZXJ2ZXJMb3N0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0
cmluZ0ltcGwuaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5oCmluZGV4IGU1NjQ2
NDhjNTQzY2Q4MjNkZThmMjIzYzQyMzdjYzkyNjk1MTkzMDQuLjI5M2U0MmRhZWFlMmJlZTk5NWNj
YzI0MDM3YTRkYmNkMzhhNzE4NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvU3Ry
aW5nSW1wbC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5oCkBAIC0xMDY0
LDYgKzEwNjQsOCBAQCBpbmxpbmUgdm9pZCBTdHJpbmdJbXBsOjpyZWYoKQogewogICAgIFNUUklO
R19TVEFUU19SRUZfU1RSSU5HKCp0aGlzKTsKIAorICAgIGlmIChVTkxJS0VMWShpc1N0YXRpYygp
KSkKKyAgICAgICAgcmV0dXJuOwogICAgIG1fcmVmQ291bnQgKz0gc19yZWZDb3VudEluY3JlbWVu
dDsKIH0KIApAQCAtMTA3MSw2ICsxMDczLDggQEAgaW5saW5lIHZvaWQgU3RyaW5nSW1wbDo6ZGVy
ZWYoKQogewogICAgIFNUUklOR19TVEFUU19ERVJFRl9TVFJJTkcoKnRoaXMpOwogCisgICAgaWYg
KFVOTElLRUxZKGlzU3RhdGljKCkpKQorICAgICAgICByZXR1cm47CiAgICAgdW5zaWduZWQgdGVt
cFJlZkNvdW50ID0gbV9yZWZDb3VudCAtIHNfcmVmQ291bnRJbmNyZW1lbnQ7CiAgICAgaWYgKCF0
ZW1wUmVmQ291bnQpIHsKICAgICAgICAgU3RyaW5nSW1wbDo6ZGVzdHJveSh0aGlzKTsK
</data>
<flag name="review"
          id="380827"
          type_id="1"
          status="+"
          setter="mark.lam"
    />
          </attachment>
      

    </bug>

</bugzilla>