<?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>157608</bug_id>
          
          <creation_ts>2016-05-11 21:56:43 -0700</creation_ts>
          <short_desc>Web Inspector: 3.5% of time in toFixed in TimelineRecordBar updating element positions</short_desc>
          <delta_ts>2016-05-12 00:23:07 -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 Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>DoNotImportToRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Joseph Pecoraro">joepeck</assigned_to>
          <cc>bburg</cc>
    
    <cc>commit-queue</cc>
    
    <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>mattbaker</cc>
    
    <cc>nvasilyev</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1192218</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-05-11 21:56:43 -0700</bug_when>
    <thetext>* SUMMARY
3.5% of time in toFixed in TimelineRecordBar updating element positions

_updateElementPosition&apos;s logic seems to be using toFixed(2) to compare two floats to 2 decimals of precision.

Unfortunately toFixed is converting to a string and as a result is be very expensive. Especially since it is often not even needed.

Stay in numbers by comparing a few counted numbers Math.round(num * 100) instead. In micro benchmarks this was a 40x faster way to compare random numbers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1192220</commentid>
    <comment_count>1</comment_count>
      <attachid>278696</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-05-11 22:08:16 -0700</bug_when>
    <thetext>Created attachment 278696
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1192254</commentid>
    <comment_count>2</comment_count>
      <attachid>278696</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-05-12 00:23:03 -0700</bug_when>
    <thetext>Comment on attachment 278696
[PATCH] Proposed Fix

Clearing flags on attachment: 278696

Committed r200745: &lt;http://trac.webkit.org/changeset/200745&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1192255</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-05-12 00:23:07 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>278696</attachid>
            <date>2016-05-11 22:08:16 -0700</date>
            <delta_ts>2016-05-12 00:23:03 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>toFixed-1.patch</filename>
            <type>text/plain</type>
            <size>4611</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IGU5ODhmNzUuLmI0MmU5ZjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI1IEBACiAyMDE2LTA1LTExICBKb3NlcGggUGVjb3Jh
cm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKKyAgICAgICAgV2ViIEluc3BlY3RvcjogMy41JSBv
ZiB0aW1lIGluIHRvRml4ZWQgaW4gVGltZWxpbmVSZWNvcmRCYXIgdXBkYXRpbmcgZWxlbWVudCBw
b3NpdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE1NzYwOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEF2b2lkIHVzaW5nIHRvRml4ZWQgdG8gZG8gYW4gYXBwcm94aW1hdGlvbiBjb21wYXJpc29uIG9m
IHR3byBmbG9hdGluZyBwb2ludCBudW1iZXJzLgorICAgICAgICBJbnN0ZWFkIGtlZXAgaW4gTnVt
YmVycyBieSBqdXN0IGRvaW5nIHRoZSBhcHByb3hpbWF0aW9uIHdpdGggTWF0aC5yb3VuZChudW0g
KiAxMDApLgorICAgICAgICBTaW5jZSB0b0ZpeGVkIHdhcyBkb2luZyBzdHJpbmdpZmljYXRpb24g
aXQgd2FzIHZlcnkgZXhwZW5zaXZlLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9U
aW1lbGluZVJlY29yZEJhci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVJlY29y
ZEJhci5wcm90b3R5cGUuX3VwZGF0ZUVsZW1lbnRQb3NpdGlvbik6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuVGltZWxpbmVSZWNvcmRCYXIpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3Mv
VGltZWxpbmVSZWNvcmRGcmFtZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVJl
Y29yZEZyYW1lLnByb3RvdHlwZS5fdXBkYXRlRWxlbWVudFBvc2l0aW9uKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5UaW1lbGluZVJlY29yZEZyYW1lKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNl
L1ZpZXdzL1RpbWVsaW5lUnVsZXIuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVS
dWxlci5wcm90b3R5cGUuX3VwZGF0ZVBvc2l0aW9uT2ZFbGVtZW50KToKKworMjAxNi0wNS0xMSAg
Sm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCiAgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IDQlIG9mIHRpbWUgaW4gVGltZWxpbmVPdmVydmlld0dyYXBoIGFkZGluZy9yZW1vdmlu
ZyBjbGFzc0xpc3Qgc3R5bGVzIG9uIFRpbWVsaW5lUmVjb3JkQmFyCiAgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTc2MDcKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVGltZWxpbmVSZWNvcmRCYXIu
anMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UaW1lbGluZVJl
Y29yZEJhci5qcwppbmRleCBhNjIzYTFmLi41OWRmYzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UaW1lbGluZVJlY29yZEJhci5qcworKysg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UaW1lbGluZVJlY29y
ZEJhci5qcwpAQCAtMzM2LDExICszMzYsMTEgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUmVjb3Jk
QmFyID0gY2xhc3MgVGltZWxpbmVSZWNvcmRCYXIgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2IKICAg
ICBfdXBkYXRlRWxlbWVudFBvc2l0aW9uKGVsZW1lbnQsIG5ld1Bvc2l0aW9uLCBwcm9wZXJ0eSkK
ICAgICB7CiAgICAgICAgIG5ld1Bvc2l0aW9uICo9IDEwMDsKLSAgICAgICAgbmV3UG9zaXRpb24g
PSBuZXdQb3NpdGlvbi50b0ZpeGVkKDIpOwogCi0gICAgICAgIHZhciBjdXJyZW50UG9zaXRpb24g
PSBwYXJzZUZsb2F0KGVsZW1lbnQuc3R5bGVbcHJvcGVydHldKS50b0ZpeGVkKDIpOwotICAgICAg
ICBpZiAoY3VycmVudFBvc2l0aW9uICE9PSBuZXdQb3NpdGlvbikKLSAgICAgICAgICAgIGVsZW1l
bnQuc3R5bGVbcHJvcGVydHldID0gbmV3UG9zaXRpb24gKyAiJSI7CisgICAgICAgIGxldCBuZXdQ
b3NpdGlvbkFwcm94ID0gTWF0aC5yb3VuZChuZXdQb3NpdGlvbiAqIDEwMCk7CisgICAgICAgIGxl
dCBjdXJyZW50UG9zaXRpb25BcHJveCA9IE1hdGgucm91bmQocGFyc2VGbG9hdChlbGVtZW50LnN0
eWxlW3Byb3BlcnR5XSkgKiAxMDApOworICAgICAgICBpZiAoY3VycmVudFBvc2l0aW9uQXByb3gg
IT09IG5ld1Bvc2l0aW9uQXByb3gpCisgICAgICAgICAgICBlbGVtZW50LnN0eWxlW3Byb3BlcnR5
XSA9IChuZXdQb3NpdGlvbkFwcm94IC8gMTAwKSArICIlIjsKICAgICB9CiB9OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UaW1lbGluZVJl
Y29yZEZyYW1lLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
VGltZWxpbmVSZWNvcmRGcmFtZS5qcwppbmRleCA5NmQxYzJlLi44MzM1ODg3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UaW1lbGluZVJlY29y
ZEZyYW1lLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L1RpbWVsaW5lUmVjb3JkRnJhbWUuanMKQEAgLTI3MiwxMSArMjcyLDExIEBAIFdlYkluc3BlY3Rv
ci5UaW1lbGluZVJlY29yZEZyYW1lID0gY2xhc3MgVGltZWxpbmVSZWNvcmRGcmFtZSBleHRlbmRz
IFdlYkluc3BlY3RvCiAgICAgX3VwZGF0ZUVsZW1lbnRQb3NpdGlvbihlbGVtZW50LCBuZXdQb3Np
dGlvbiwgcHJvcGVydHkpCiAgICAgewogICAgICAgICBuZXdQb3NpdGlvbiAqPSAxMDA7Ci0gICAg
ICAgIG5ld1Bvc2l0aW9uID0gbmV3UG9zaXRpb24udG9GaXhlZCgyKTsKIAotICAgICAgICB2YXIg
Y3VycmVudFBvc2l0aW9uID0gcGFyc2VGbG9hdChlbGVtZW50LnN0eWxlW3Byb3BlcnR5XSkudG9G
aXhlZCgyKTsKLSAgICAgICAgaWYgKGN1cnJlbnRQb3NpdGlvbiAhPT0gbmV3UG9zaXRpb24pCi0g
ICAgICAgICAgICBlbGVtZW50LnN0eWxlW3Byb3BlcnR5XSA9IG5ld1Bvc2l0aW9uICsgIiUiOwor
ICAgICAgICBsZXQgbmV3UG9zaXRpb25BcHJveCA9IE1hdGgucm91bmQobmV3UG9zaXRpb24gKiAx
MDApOworICAgICAgICBsZXQgY3VycmVudFBvc2l0aW9uQXByb3ggPSBNYXRoLnJvdW5kKHBhcnNl
RmxvYXQoZWxlbWVudC5zdHlsZVtwcm9wZXJ0eV0pICogMTAwKTsKKyAgICAgICAgaWYgKGN1cnJl
bnRQb3NpdGlvbkFwcm94ICE9PSBuZXdQb3NpdGlvbkFwcm94KQorICAgICAgICAgICAgZWxlbWVu
dC5zdHlsZVtwcm9wZXJ0eV0gPSAobmV3UG9zaXRpb25BcHJveCAvIDEwMCkgKyAiJSI7CiAgICAg
fQogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvVGltZWxpbmVSdWxlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL1RpbWVsaW5lUnVsZXIuanMKaW5kZXggMWFjNzg4Yy4uNDI5ZGM2NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVGltZWxpbmVS
dWxlci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9U
aW1lbGluZVJ1bGVyLmpzCkBAIC02MDIsMTEgKzYwMiwxMSBAQCBXZWJJbnNwZWN0b3IuVGltZWxp
bmVSdWxlciA9IGNsYXNzIFRpbWVsaW5lUnVsZXIgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuVmlldwog
ICAgICAgICBwcm9wZXJ0eSA9IHByb3BlcnR5IHx8ICJsZWZ0IjsKIAogICAgICAgICBuZXdQb3Np
dGlvbiAqPSB0aGlzLl9lbmRUaW1lUGlubmVkID8gMTAwIDogdmlzaWJsZVdpZHRoOwotICAgICAg
ICBuZXdQb3NpdGlvbiA9IG5ld1Bvc2l0aW9uLnRvRml4ZWQoMik7CiAKLSAgICAgICAgdmFyIGN1
cnJlbnRQb3NpdGlvbiA9IHBhcnNlRmxvYXQoZWxlbWVudC5zdHlsZVtwcm9wZXJ0eV0pLnRvRml4
ZWQoMik7Ci0gICAgICAgIGlmIChjdXJyZW50UG9zaXRpb24gIT09IG5ld1Bvc2l0aW9uKQotICAg
ICAgICAgICAgZWxlbWVudC5zdHlsZVtwcm9wZXJ0eV0gPSBuZXdQb3NpdGlvbiArICh0aGlzLl9l
bmRUaW1lUGlubmVkID8gIiUiIDogInB4Iik7CisgICAgICAgIGxldCBuZXdQb3NpdGlvbkFwcm94
ID0gTWF0aC5yb3VuZChuZXdQb3NpdGlvbiAqIDEwMCk7CisgICAgICAgIGxldCBjdXJyZW50UG9z
aXRpb25BcHJveCA9IE1hdGgucm91bmQocGFyc2VGbG9hdChlbGVtZW50LnN0eWxlW3Byb3BlcnR5
XSkgKiAxMDApOworICAgICAgICBpZiAoY3VycmVudFBvc2l0aW9uQXByb3ggIT09IG5ld1Bvc2l0
aW9uQXByb3gpCisgICAgICAgICAgICBlbGVtZW50LnN0eWxlW3Byb3BlcnR5XSA9IChuZXdQb3Np
dGlvbkFwcm94IC8gMTAwKSArICh0aGlzLl9lbmRUaW1lUGlubmVkID8gIiUiIDogInB4Iik7CiAg
ICAgfQogCiAgICAgX3VwZGF0ZU1hcmtlcnModmlzaWJsZVdpZHRoLCBkdXJhdGlvbikK
</data>

          </attachment>
      

    </bug>

</bugzilla>