[Webkit-unassigned] [Bug 69114] DFG does not speculate aggressively enough on put_by_id

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Fri Sep 30 15:14:01 PDT 2011


https://bugs.webkit.org/show_bug.cgi?id=69114





--- Comment #8 from Filip Pizlo <fpizlo at apple.com>  2011-09-30 15:14:01 PST ---
Latest numbers, after merging and such.  It appears that there are slow-downs in some benchmarks, though the slow-downs are smaller than the speed-ups.  The slow-downs are all because PutById has no polymorphic case, and in some (rare!) cases the structure that it's patched on is no longer live.  We should fix that by blowing away all property access patches (and maybe all patches, period) whenever we trigger recompilation.  For now, I recommend landing this, because it's a bigger win (1.6% on V8) than it is a loss (0.6% on Kraken).



Benchmark report for SunSpider, V8, and Kraken.

VMs tested:
"TipOfTree" at /Volumes/Data/pizlo/quinary/OpenSource/WebKitBuild/Release/jsc
"PutByOffset" at /Volumes/Data/pizlo/septenary/OpenSource/WebKitBuild/Release/jsc

Collected 12 samples per benchmark/VM, with 4 VM invocations per benchmark. 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              PutByOffset                                   
SunSpider:
   3d-cube                                7.6548+-0.3226          7.3917+-0.1907         might be 1.0356x faster
   3d-morph                               7.4151+-0.1395    ?     7.4507+-0.1249       ?
   3d-raytrace                            8.4812+-0.2948          8.3150+-0.2184         might be 1.0200x faster
   access-binary-trees                    2.1094+-0.0995    ^     1.8069+-0.0613       ^ definitely 1.1674x faster
   access-fannkuch                        6.5808+-0.1922    ?     6.7499+-0.3102       ? might be 1.0257x slower
   access-nbody                           3.6466+-0.0806          3.5337+-0.0536         might be 1.0320x faster
   access-nsieve                          2.6069+-0.0616    ?     2.6798+-0.0636       ? might be 1.0280x slower
   bitops-3bit-bits-in-byte               1.7354+-0.0394          1.7119+-0.0337         might be 1.0137x faster
   bitops-bits-in-byte                    2.7756+-0.0751          2.7511+-0.0885       
   bitops-bitwise-and                     3.4489+-0.0767    ^     3.2602+-0.0614       ^ definitely 1.0579x faster
   bitops-nsieve-bits                     5.5177+-0.1257    ?     5.5852+-0.2135       ? might be 1.0122x slower
   controlflow-recursive                  2.1451+-0.0706          2.1262+-0.1009       
   crypto-aes                             6.8211+-0.1833          6.7461+-0.2125         might be 1.0111x faster
   crypto-md5                             2.8203+-0.0738          2.7874+-0.0739         might be 1.0118x faster
   crypto-sha1                            2.5016+-0.0660    ?     2.5311+-0.0773       ? might be 1.0118x slower
   date-format-tofte                     10.0443+-0.2708    ?    10.2338+-0.2693       ? might be 1.0189x slower
   date-format-xparb                     10.0244+-0.4041          9.7601+-0.2739         might be 1.0271x faster
   math-cordic                            6.3638+-0.2144          6.3315+-0.0620       
   math-partial-sums                      7.7000+-0.0621    ?     7.7615+-0.1886       ?
   math-spectral-norm                     3.0138+-0.3396          2.8333+-0.0575         might be 1.0637x faster
   regexp-dna                            10.8769+-0.1672    ?    10.9393+-0.2064       ?
   string-base64                          6.2164+-0.1799          6.0559+-0.2046         might be 1.0265x faster
   string-fasta                           7.0881+-0.1568          6.8526+-0.1197         might be 1.0344x faster
   string-tagcloud                       12.1531+-0.2665         11.9861+-0.3321         might be 1.0139x faster
   string-unpack-code                    21.3522+-0.4916    ?    21.4023+-0.4834       ?
   string-validate-input                  6.3879+-0.2148    ?     6.4203+-0.2185       ?

   <arithmetic>                           6.4416+-0.0494          6.3848+-0.0395       
   <geometric>                            5.3031+-0.0494          5.2245+-0.0305         might be 1.0150x faster
   <harmonic>                             4.3660+-0.0548    ^     4.2681+-0.0382       ^ definitely 1.0229x faster

                                            TipOfTree              PutByOffset                                   
V8:
   crypto                                72.1369+-0.7540    ?    73.1136+-0.4965       ? might be 1.0135x slower
   deltablue                            230.9621+-0.8870    ^   226.2957+-1.9236       ^ definitely 1.0206x faster
   earley-boyer                          91.2661+-0.8792    ^    87.8639+-0.2933       ^ definitely 1.0387x faster
   raytrace                              63.6002+-0.4248    ^    62.0997+-1.0089       ^ definitely 1.0242x faster
   regexp                               104.6459+-0.6469    ?   106.7863+-1.6047       ? might be 1.0205x slower
   richards                             203.1269+-2.4756    ^   188.0540+-1.1212       ^ definitely 1.0802x faster
   splay                                 91.4723+-0.7206    ?    92.3211+-0.9555       ?

   <arithmetic>                         122.4586+-0.3488    ^   119.5049+-0.5252       ^ definitely 1.0247x faster
   <geometric>                          109.4324+-0.3007    ^   107.6235+-0.4169       ^ definitely 1.0168x faster
   <harmonic>                            99.5829+-0.3574    ^    98.4368+-0.4103       ^ definitely 1.0116x faster

                                            TipOfTree              PutByOffset                                   
Kraken:
   ai-astar                             492.2343+-4.4177    ?   500.2010+-5.8382       ? might be 1.0162x slower
   audio-beat-detection                 190.9514+-0.5210    ?   193.0569+-1.7599       ? might be 1.0110x slower
   audio-dft                            287.1908+-2.8916        284.1722+-4.7994         might be 1.0106x faster
   audio-fft                            128.8452+-1.2426    ?   128.9132+-1.2200       ?
   audio-oscillator                     260.5544+-1.9829        259.4385+-2.5186       
   imaging-darkroom                     420.9855+-1.0263    ?   421.8993+-1.7584       ?
   imaging-desaturate                   225.8952+-2.0593    ?   228.8723+-2.6980       ? might be 1.0132x slower
   imaging-gaussian-blur                586.2501+-4.6554    ?   589.6864+-4.7268       ?
   json-parse-financial                  48.4939+-0.2546    ?    48.7435+-1.2599       ?
   json-stringify-tinderbox              68.6375+-0.3577    !    70.0573+-0.9318       ! definitely 1.0207x slower
   stanford-crypto-aes                  133.3343+-1.9512        132.8290+-2.0660       
   stanford-crypto-ccm                  102.4281+-0.6916        102.1125+-1.6788       
   stanford-crypto-pbkdf2               196.7817+-1.7446    ?   201.3275+-4.3554       ? might be 1.0231x slower
   stanford-crypto-sha256-iterative      85.1036+-0.6282    ?    85.6230+-0.8534       ?

   <arithmetic>                         230.5490+-0.5868    !   231.9238+-0.7332       ! definitely 1.0060x slower
   <geometric>                          180.3196+-0.3844    !   181.3460+-0.6401       ! definitely 1.0057x slower
   <harmonic>                           139.7823+-0.3152    ?   140.6246+-0.7808       ?

                                            TipOfTree              PutByOffset                                   
All benchmarks:
   <arithmetic>                          90.4761+-0.2161         90.4143+-0.2503       
   <geometric>                           23.7963+-0.1389         23.5822+-0.0897       
   <harmonic>                             7.6727+-0.0940    ^     7.5051+-0.0658       ^ definitely 1.0223x faster

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list