<?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>81865</bug_id>
          
          <creation_ts>2012-03-21 19:49:00 -0700</creation_ts>
          <short_desc>Improve our style sharing algorithm parameters</short_desc>
          <delta_ts>2022-09-30 14:50:17 -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>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></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="Julien Chaffraix">jchaffraix</reporter>
          <assigned_to name="Julien Chaffraix">jchaffraix</assigned_to>
          <cc>ahmad.saleem792</cc>
    
    <cc>ap</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>584904</commentid>
    <comment_count>0</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-03-21 19:49:00 -0700</bug_when>
    <thetext>Currently our style sharing algorithm uses those 2 values that I set a year ago:

static const unsigned cStyleSearchThreshold = 10;
static const unsigned cStyleSearchLevelThreshold = 10;

Those were set up to improve style sharing and instrumenting our style sharing, I don&apos;t think they are an optimum of performance vs memory savings.

My current discovery so far based on html5-full-render.html and moz, intl1, intl2 and alexa_us page cyclers:
* Our current style sharing rate is 28.6% (that is out of 1000 calls to locateSharedStyle, 286 returns a match)
* Most of the tree walking leads to bailing out without having a shared style (95% of the &quot;budget&quot; used by the algorithm (|count| and |visitedNode| in locateSharedStyle) fails |sharedNode| NULL-check)
* Overall, when styles are shared, we don&apos;t walk the tree that much (on average, |count| is around 1 and |visitedCount| is around 1 too).

What I am missing is the distribution of the parameters to know what would be an optimum.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584912</commentid>
    <comment_count>1</comment_count>
      <attachid>133174</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-03-21 20:02:43 -0700</bug_when>
    <thetext>Created attachment 133174
Patch for discussion about the trade-offs we are ready to make, not necessarily the best choice but a good example.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1902473</commentid>
    <comment_count>2</comment_count>
    <who name="Ahmad Saleem">ahmad.saleem792</who>
    <bug_when>2022-09-30 14:50:05 -0700</bug_when>
    <thetext>At least one of the threshold exist still even today:

https://github.com/WebKit/WebKit/blob/62782a8855305e19a8039168935016bb1b7ecfcf/Source/WebCore/style/StyleSharingResolver.cpp#L52

Is there any needed to look into on how to evolve this for any future refactoring or this can be tagged as &quot;RESOLVED WONTFIX&quot;? Thanks1</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133174</attachid>
            <date>2012-03-21 20:02:43 -0700</date>
            <delta_ts>2012-03-21 20:02:43 -0700</delta_ts>
            <desc>Patch for discussion about the trade-offs we are ready to make, not necessarily the best choice but a good example.</desc>
            <filename>bug-81865-20120321200242.patch</filename>
            <type>text/plain</type>
            <size>2603</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTExNDQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjk1ZDlkNzMwYzQyMDMx
NTQwNWU1NWIyOGVlM2JmYWQyNTk0M2JlOC4uMDkzNWRhYjQ1ZDM5ODljNzE1MjA1NmQ0YzQwOGE3
MGEwODYzNDE4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEyLTAzLTIxICBKdWxp
ZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgorCisgICAgICAgIEltcHJvdmUg
b3VyIHN0eWxlIHNoYXJpbmcgYWxnb3JpdGhtIHBhcmFtZXRlcnMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgxODY1CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUGVyZm9ybWFuY2UgY2hhbmdlIG9ubHkuCisK
KyAgICAgICAgVGhpcyBjaGFuZ2VzIHRoZSBtZW1vcnkgdnMgcGVyZm9ybWFuY2UgdHJhZGUtb2Zm
cyBiYXNlZCBvbiBzZXZlcmFsIG1lYXN1cmVtZW50cworICAgICAgICBhbmQgZGlzY292ZXJpZXM6
CisgICAgICAgIC0gb3VyIGN1cnJlbnQgc2hhcmluZyByYXRlIGlzIDI4LjYlLgorICAgICAgICAt
IG1vc3Qgb2YgdGhlIHRyZWUgd2Fsa2luZyBsZWFkcyB0byB1cyBiYWlsaW5nIG91dCB3aXRob3V0
IGEgc3VpdGFibGUgY2FuZGlkYXRlICg5NSUgb2YgdGhlCisgICAgICAgICJidWRnZXQiIFt8Y291
bnR8IGFuZCB8dmlzaXRlZE5vZGV8XSB1c2VkIGJ5IGxvY2F0ZVNoYXJlZFN0eWxlKQorICAgICAg
ICAtIHdoZW4gZmluZGluZyBhIG1hdGNoLCB3ZSB1c2UgdmVyeSBmZXcgb2YgdGhlIHBvdGVudGlh
bCAiYnVkZ2V0Ii4KKworICAgICAgICBUaGUgcGFyYW1ldGVycyBhcmUgbW9yZSB0dW5lZCB0b3dh
cmRzIGZhaWxpbmcgZWFybHkgYW5kIG1heWJlIG5vdCBmaW5kaW5nIGFzIG11Y2ggY2FuZGlkYXRl
cywKKyAgICAgICAgd2hpY2ggbWF0Y2hlcyB0aGUgZGF0YSBqdXN0IHNob3duLgorCisgICAgICAg
IFRoZSBwZXJmb3JtYW5jZSBpbXBhY3RzIGFyZToKKyAgICAgICAgLSBPdXIgb3ZlcmFsbCBzaGFy
aW5nIHJhdGUgZHJvcHMgYnkgLjUgcGVyY2VudCBwb2ludC4KKyAgICAgICAgLSBXZSB3YWxrIDIu
NSBsZXNzIG5vZGVzIG9uIGF2ZXJhZ2UuCisgICAgICAgIC0gSFRNTDUgcHJvZ3Jlc3NlcyBieSAw
LjUlIG9uIG15IG1hY2hpbmUgKmJ1dCogSSBleHBlY3QgdGhlIHBhZ2Ugd2lsbCB1c2UgNTBrYiBt
b3JlIGR1ZSB0byBtaXNzZWQgc2hhcmluZy4KKyAgICAgICAgLSBtb3ogcGFnZSBjeWNsZXJzIHNo
b3VsZCBwcm9ncmVzcyBieSAxMCUgYXMgaXQgaXMsIG9uIGF2ZXJhZ2UsIHVzaW5nIGEgbG90IG1v
cmUgYnVkZ2V0IHRoYW4gdGhlIG90aGVyCisgICAgICAgIGJlbmNobWFya3MgYmVmb3JlIGJhaWxp
bmcgb3V0IHdpdGhvdXQgYW55IHN0eWxlLgorICAgICAgICAtIGludGwxLCBpbnRsMiBhbmQgYWxl
eGFfdXMgZG9uJ3Qgc2VlbSB0byBiZSBpbXBhY3RlZCB0aG91Z2ggSSB3b3VsZCBleHBlY3QgdGhl
IDIgZmlyc3QncworICAgICAgICBwZXJmb3JtYW5jZSB0byBpbXByb3ZlLgorCisgICAgICAgICog
Y3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTZWxl
Y3Rvcjo6Y29sbGVjdE1hdGNoaW5nUnVsZXNGb3JMaXN0KToKKwogMjAxMi0wMy0yMCAgRGFuYSBK
YW5zZW5zICA8ZGFuYWtqQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIEFsbG93
IHVzIHRvIGRpc2FibGUgb3ZlcmRyYXcgbWV0cmljcyB3aGVuIHRyYWNpbmcgaXMgb2ZmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKaW5kZXggNTNlY2E0YjkwN2VhMTM5ZDE2
ZTA0MTBmZjk3MmNkZTE4NzY2NmY1MC4uYThhNzhkM2U1Yzk0YmFhNWZmNzBmNzQ4ZGUwY2E5YWI1
MTY3MGI0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcApAQCAtMTE0
MCw4ICsxMTQwLDggQEAgaW5saW5lIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6aW5pdEZvclN0eWxl
UmVzb2x2ZShFbGVtZW50KiBlLCBSZW5kZXJTdHlsZSogcGFyZW4KICAgICBtX2ZvbnREaXJ0eSA9
IGZhbHNlOwogfQogCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgY1N0eWxlU2VhcmNoVGhyZXNob2xk
ID0gMTA7Ci1zdGF0aWMgY29uc3QgdW5zaWduZWQgY1N0eWxlU2VhcmNoTGV2ZWxUaHJlc2hvbGQg
PSAxMDsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjU3R5bGVTZWFyY2hUaHJlc2hvbGQgPSA1Owor
c3RhdGljIGNvbnN0IHVuc2lnbmVkIGNTdHlsZVNlYXJjaExldmVsVGhyZXNob2xkID0gNTsKIAog
Tm9kZSogQ1NTU3R5bGVTZWxlY3Rvcjo6bG9jYXRlQ291c2luTGlzdChFbGVtZW50KiBwYXJlbnQs
IHVuc2lnbmVkJiB2aXNpdGVkTm9kZUNvdW50KSBjb25zdAogewo=
</data>

          </attachment>
      

    </bug>

</bugzilla>