Bug 71978 - Multiple CodeBlock should be able to share the same instruction stream without copying
Summary: Multiple CodeBlock should be able to share the same instruction stream withou...
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: 528+ (Nightly build)
Hardware: All All
: P2 Normal
Assignee: Nobody
URL:
Keywords:
Depends on:
Blocks: 71977
  Show dependency treegraph
 
Reported: 2011-11-09 17:42 PST by Filip Pizlo
Modified: 2011-11-09 20:38 PST (History)
0 users

See Also:


Attachments
the patch (8.57 KB, patch)
2011-11-09 19:46 PST, Filip Pizlo
oliver: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Filip Pizlo 2011-11-09 17:42:19 PST
Patch forthcoming.
Comment 1 Filip Pizlo 2011-11-09 19:46:03 PST
Created attachment 114423 [details]
the patch

This is performance-neutral.



Benchmark report for SunSpider, V8, and Kraken on oldmac.local (MacPro4,1).

VMs tested:
"TipOfTree" at /Volumes/Data/pizlo/quinary/OpenSource/WebKitBuild/Release/jsc (r99793)
"IndirectInsts" at /Volumes/Data/pizlo/octonary/OpenSource/WebKitBuild/Release/jsc (r99793)

Collected 12 samples per benchmark/VM, with 4 VM invocations per benchmark. Emitted a call to gc() between sample
measurements. Used 1 benchmark iteration per VM invocation for warm-up. Used the jsc-specific preciseTime()
function to get microsecond-level timing. Reporting benchmark execution times with 95% confidence intervals in
milliseconds.

                                            TipOfTree             IndirectInsts                                  
SunSpider:
   3d-cube                                9.1951+-0.0298    ?     9.2127+-0.0350       ?
   3d-morph                              10.1246+-0.0311    ?    10.1445+-0.0849       ?
   3d-raytrace                            9.7039+-0.0634    ^     9.5737+-0.0527       ^ definitely 1.0136x faster
   access-binary-trees                    1.9889+-0.0085          1.9777+-0.0087       
   access-fannkuch                        9.3314+-0.0087          9.3194+-0.0114       
   access-nbody                           5.2766+-0.0053    ?     5.2810+-0.0100       ?
   access-nsieve                          3.7737+-0.0150    ?     3.7801+-0.0368       ?
   bitops-3bit-bits-in-byte               1.5518+-0.0143    ?     1.5562+-0.0138       ?
   bitops-bits-in-byte                    6.1937+-0.0236          6.1742+-0.0306       
   bitops-bitwise-and                     3.9955+-0.0058    ?     4.0000+-0.0102       ?
   bitops-nsieve-bits                     6.8383+-0.0437          6.8377+-0.0442       
   controlflow-recursive                  2.8435+-0.0244          2.8108+-0.0220         might be 1.0116x faster
   crypto-aes                             9.3641+-0.0693          9.2476+-0.0653         might be 1.0126x faster
   crypto-md5                             3.2962+-0.0134    ?     3.2994+-0.0118       ?
   crypto-sha1                            3.0110+-0.0174          3.0017+-0.0198       
   date-format-tofte                     12.7474+-0.0831    !    12.9870+-0.1199       ! definitely 1.0188x slower
   date-format-xparb                     12.1318+-0.1432         11.9993+-0.1692         might be 1.0110x faster
   math-cordic                            9.3523+-0.3521          9.3190+-0.3537       
   math-partial-sums                     12.7053+-0.0681         12.6480+-0.0430       
   math-spectral-norm                     3.3212+-0.0053    ?     3.3224+-0.0043       ?
   regexp-dna                            16.5074+-0.1241         16.4670+-0.1331       
   string-base64                          5.0440+-0.0464          5.0155+-0.0444       
   string-fasta                           8.5750+-0.0239          8.5691+-0.0282       
   string-tagcloud                       16.5642+-0.1475         16.3738+-0.1338         might be 1.0116x faster
   string-unpack-code                    28.5391+-0.0661         28.3653+-0.1138       
   string-validate-input                  6.8285+-0.0597    ?     6.8602+-0.0820       ?

   <arithmetic> *                         8.4156+-0.0223          8.3901+-0.0378       
   <geometric>                            6.7202+-0.0159          6.7043+-0.0270       
   <harmonic>                             5.2664+-0.0144          5.2560+-0.0168       

                                            TipOfTree             IndirectInsts                                  
V8:
   crypto                                96.5999+-0.2638    ?    96.7124+-0.2736       ?
   deltablue                            217.9875+-1.8447        217.1872+-1.2473       
   earley-boyer                         131.0454+-1.0592        130.8345+-0.9018       
   raytrace                              81.5071+-0.4068    ^    80.1075+-0.4319       ^ definitely 1.0175x faster
   regexp                               149.8364+-0.4580        149.7071+-0.5024       
   richards                             171.2393+-0.3957        171.2251+-0.1753       
   splay                                108.3594+-1.1757        107.0159+-1.2419         might be 1.0126x faster

   <arithmetic>                         136.6536+-0.4019        136.1128+-0.3722       
   <geometric> *                        129.9313+-0.3875        129.2864+-0.3757       
   <harmonic>                           123.7063+-0.3872        122.9385+-0.3845       

                                            TipOfTree             IndirectInsts                                  
Kraken:
   ai-astar                             896.4506+-0.5545    ?   896.6738+-0.4127       ?
   audio-beat-detection                 256.4160+-1.0621    ?   258.0401+-2.1476       ?
   audio-dft                            314.3094+-3.1101    ?   314.4966+-2.7991       ?
   audio-fft                            167.0367+-0.5979        166.6711+-0.1535       
   audio-oscillator                     352.6297+-1.3368    ?   352.6809+-2.5037       ?
   imaging-darkroom                     408.2399+-7.4025        402.0354+-6.0704         might be 1.0154x faster
   imaging-desaturate                   291.2936+-0.1506        291.2023+-0.0605       
   imaging-gaussian-blur                750.9313+-0.3272        750.8042+-0.1390       
   json-parse-financial                  86.9584+-0.1951         86.6275+-0.4613       
   json-stringify-tinderbox              96.3491+-0.2609    ^    94.7587+-0.3953       ^ definitely 1.0168x faster
   stanford-crypto-aes                  141.4608+-1.5955    ^   139.2627+-0.5583       ^ definitely 1.0158x faster
   stanford-crypto-ccm                  139.7091+-0.8157    ^   137.7735+-0.5919       ^ definitely 1.0140x faster
   stanford-crypto-pbkdf2               282.4020+-2.4379    !   290.3719+-4.6501       ! definitely 1.0282x slower
   stanford-crypto-sha256-iterative     118.3429+-0.3506    ?   119.2543+-0.5738       ?

   <arithmetic> *                       307.3235+-0.5651        307.1895+-0.6239       
   <geometric>                          239.9820+-0.4241        239.5484+-0.4258       
   <harmonic>                           193.5401+-0.3173    ^   192.7567+-0.2960       ^ definitely 1.0041x faster

                                            TipOfTree             IndirectInsts                                  
All benchmarks:
   <arithmetic>                         116.5513+-0.1557        116.4167+-0.1931       
   <geometric>                           30.3039+-0.0469         30.2254+-0.0720       
   <harmonic>                             9.2777+-0.0248          9.2587+-0.0290       

                                            TipOfTree             IndirectInsts                                  
Geomean of preferred means:
   <scaled-result>                       69.5230+-0.0962         69.3275+-0.1339
Comment 2 Oliver Hunt 2011-11-09 20:00:19 PST
Comment on attachment 114423 [details]
the patch

r=me
Comment 3 Filip Pizlo 2011-11-09 20:38:10 PST
Landed in http://trac.webkit.org/changeset/99810