[Webkit-unassigned] [Bug 71650] DFG argument profiling should only be activated once code gets hot

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Mon Nov 7 20:08:09 PST 2011


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





--- Comment #3 from Filip Pizlo <fpizlo at apple.com>  2011-11-07 20:08:09 PST ---
Did some more work, and it appears to be a win for page load.  Playing around with it a bit more, but I think this thing is worth landing.

It also doesn't adversely affect the standard benchmarks.  Here's the performance on two different kinds of hardware.



Benchmark report for SunSpider, V8, and Kraken on nitroflex.local (MacBookPro8,2).

VMs tested:
"TipOfTree" at /Volumes/Data/pizlo/quinary/OpenSource/WebKitBuild/Release/jsc (r99516)
"ValueProfLight" at /Volumes/Data/pizlo/senary/OpenSource/WebKitBuild/Release/jsc (r99516)

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             ValueProfLight                                 
SunSpider:
   3d-cube                                7.2304+-0.1731    ?     7.2564+-0.1386       ?
   3d-morph                               7.4582+-0.0915    ?     7.4966+-0.1286       ?
   3d-raytrace                            7.7481+-0.1305          7.6149+-0.1324         might be 1.0175x faster
   access-binary-trees                    1.6406+-0.0471          1.6102+-0.0582         might be 1.0189x faster
   access-fannkuch                        6.4688+-0.1215          6.4676+-0.1043       
   access-nbody                           3.7328+-0.1477    ?     3.7692+-0.1055       ?
   access-nsieve                          2.6139+-0.0610    ?     2.6891+-0.0754       ? might be 1.0288x slower
   bitops-3bit-bits-in-byte               1.3106+-0.0239    ?     1.3151+-0.0156       ?
   bitops-bits-in-byte                    2.3647+-0.0521    ?     2.4284+-0.0684       ? might be 1.0269x slower
   bitops-bitwise-and                     3.2559+-0.0765          3.2366+-0.0710       
   bitops-nsieve-bits                     5.3216+-0.1304    ?     5.3441+-0.1130       ?
   controlflow-recursive                  2.1311+-0.0371          2.1270+-0.0561       
   crypto-aes                             7.9343+-0.1973          7.9052+-0.2799       
   crypto-md5                             2.5932+-0.0701    ?     2.6134+-0.0530       ?
   crypto-sha1                            2.4342+-0.0640    ?     2.4643+-0.1180       ? might be 1.0124x slower
   date-format-tofte                     10.1530+-0.2708    ?    10.2356+-0.3027       ?
   date-format-xparb                      9.5573+-0.2211    ^     9.0603+-0.2304       ^ definitely 1.0549x faster
   math-cordic                            6.4775+-0.1294          6.3919+-0.0936         might be 1.0134x faster
   math-partial-sums                      7.5949+-0.1722    ?     7.9073+-0.4881       ? might be 1.0411x slower
   math-spectral-norm                     2.5801+-0.0634    ?     2.6212+-0.0546       ? might be 1.0159x slower
   regexp-dna                            11.6116+-0.2631    ?    11.6872+-0.2266       ?
   string-base64                          4.1823+-0.1491          4.0680+-0.1552         might be 1.0281x faster
   string-fasta                           6.4279+-0.1428          6.3788+-0.1404       
   string-tagcloud                       11.9419+-0.3328         11.7197+-0.4272         might be 1.0190x faster
   string-unpack-code                    21.1210+-0.3590    ?    21.1276+-0.5957       ?
   string-validate-input                  5.0950+-0.0722    ?     5.2114+-0.0867       ? might be 1.0228x slower

   <arithmetic> *                         6.1916+-0.0311          6.1826+-0.0561       
   <geometric>                            4.9594+-0.0218    ?     4.9634+-0.0416       ?
   <harmonic>                             3.9503+-0.0243    ?     3.9614+-0.0478       ?

                                            TipOfTree             ValueProfLight                                 
V8:
   crypto                                72.8888+-0.7654         72.7866+-0.8761       
   deltablue                            164.9539+-1.4164        164.0539+-2.5844       
   earley-boyer                          88.0223+-0.9300    ?    88.3923+-1.3018       ?
   raytrace                              62.4079+-0.6167         61.7791+-1.1031         might be 1.0102x faster
   regexp                               105.1340+-0.6417        104.8354+-1.2056       
   richards                             124.2478+-0.9301        123.7775+-0.5580       
   splay                                 71.8906+-1.1361    ?    73.5871+-1.2935       ? might be 1.0236x slower

   <arithmetic>                          98.5065+-0.3984         98.4588+-0.6440       
   <geometric> *                         93.3951+-0.4173    ?    93.4398+-0.6286       ?
   <harmonic>                            88.9991+-0.4380    ?    89.0937+-0.6635       ?

                                            TipOfTree             ValueProfLight                                 
Kraken:
   ai-astar                             491.0646+-7.4438        488.5014+-3.5650       
   audio-beat-detection                 187.9569+-1.5960    ?   188.9246+-2.0744       ?
   audio-dft                            265.8988+-4.5920        265.8597+-2.3995       
   audio-fft                            124.3408+-1.1471        123.3499+-1.4393       
   audio-oscillator                     250.4971+-1.1528    ?   251.6878+-2.2429       ?
   imaging-darkroom                     298.8867+-4.1479        298.8029+-4.6689       
   imaging-desaturate                   223.9861+-0.9883    !   227.9079+-1.8077       ! definitely 1.0175x slower
   imaging-gaussian-blur                557.5609+-8.9002        550.4981+-5.0659         might be 1.0128x faster
   json-parse-financial                  57.2818+-0.6776         56.6577+-0.2216         might be 1.0110x faster
   json-stringify-tinderbox              67.7372+-0.2714    !    68.5644+-0.3343       ! definitely 1.0122x slower
   stanford-crypto-aes                   97.0259+-1.6667         96.0273+-0.9699         might be 1.0104x faster
   stanford-crypto-ccm                  100.1471+-0.7916    ?   100.7749+-0.8839       ?
   stanford-crypto-pbkdf2               191.4861+-3.2462    ?   193.5317+-1.2876       ? might be 1.0107x slower
   stanford-crypto-sha256-iterative      80.2285+-1.1339         79.1964+-0.2547         might be 1.0130x faster

   <arithmetic> *                       213.8642+-0.8490        213.5918+-0.8801       
   <geometric>                          169.7457+-0.4570        169.7065+-0.5197       
   <harmonic>                           135.9450+-0.5409        135.7753+-0.3207       

                                            TipOfTree             ValueProfLight                                 
All benchmarks:
   <arithmetic>                          81.8005+-0.2443         81.7073+-0.2494       
   <geometric>                           21.9964+-0.0670    ?    22.0057+-0.1087       ?
   <harmonic>                             6.9492+-0.0418    ?     6.9681+-0.0822       ?

                                            TipOfTree             ValueProfLight                                 
Geomean of preferred means:
   <scaled-result>                       49.8212+-0.1243         49.7827+-0.1884       



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

VMs tested:
"TipOfTree" at /Volumes/Data/pizlo/quinary/OpenSource/WebKitBuild/Release/jsc (r99516)
"ValueProfLight" at /Volumes/Data/pizlo/senary/OpenSource/WebKitBuild/Release/jsc (r99516)

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             ValueProfLight                                 
SunSpider:
   3d-cube                                9.2870+-0.0345    ?     9.3119+-0.0347       ?
   3d-morph                              10.2349+-0.1418    ?    10.3739+-0.1736       ? might be 1.0136x slower
   3d-raytrace                            9.8469+-0.0760    ?     9.8849+-0.0844       ?
   access-binary-trees                    2.0140+-0.0064    !     2.0460+-0.0131       ! definitely 1.0159x slower
   access-fannkuch                        9.4287+-0.0109    !     9.4782+-0.0187       ! definitely 1.0052x slower
   access-nbody                           5.4197+-0.0051    ?     5.4279+-0.0068       ?
   access-nsieve                          3.7734+-0.0051    !     3.7888+-0.0076       ! definitely 1.0041x slower
   bitops-3bit-bits-in-byte               1.5440+-0.0192    ?     1.5485+-0.0125       ?
   bitops-bits-in-byte                    5.9799+-0.0443    !     6.0824+-0.0360       ! definitely 1.0171x slower
   bitops-bitwise-and                     4.0020+-0.0058    ^     3.9938+-0.0021       ^ definitely 1.0021x faster
   bitops-nsieve-bits                     6.8718+-0.0329          6.8514+-0.0415       
   controlflow-recursive                  2.8411+-0.0201    ^     2.7844+-0.0130       ^ definitely 1.0203x faster
   crypto-aes                             9.7526+-0.0685    ?     9.8290+-0.0532       ?
   crypto-md5                             3.3631+-0.0182          3.3572+-0.0072       
   crypto-sha1                            3.0982+-0.0118    ?     3.0995+-0.0127       ?
   date-format-tofte                     13.2199+-0.0821    ?    13.2593+-0.2331       ?
   date-format-xparb                     12.3084+-0.2516    ?    12.4245+-0.0945       ?
   math-cordic                            8.7913+-0.0949    ?     8.8077+-0.0155       ?
   math-partial-sums                     12.7056+-0.0671    ?    12.7577+-0.0401       ?
   math-spectral-norm                     3.4455+-0.0107    ?     3.4490+-0.0163       ?
   regexp-dna                            16.5404+-0.1382    ?    16.5743+-0.2217       ?
   string-base64                          5.0765+-0.0253    ?     5.1031+-0.0357       ?
   string-fasta                           8.6102+-0.0090    ^     8.5798+-0.0201       ^ definitely 1.0035x faster
   string-tagcloud                       16.2442+-0.1298         16.1692+-0.1206       
   string-unpack-code                    28.4490+-0.1292         28.4115+-0.1552       
   string-validate-input                  6.8985+-0.0603    ?     6.9568+-0.0582       ?

   <arithmetic> *                         8.4518+-0.0270    ?     8.4750+-0.0308       ?
   <geometric>                            6.7634+-0.0200    ?     6.7826+-0.0196       ?
   <harmonic>                             5.3069+-0.0176    ?     5.3202+-0.0143       ?

                                            TipOfTree             ValueProfLight                                 
V8:
   crypto                                97.5008+-0.2748         97.4425+-0.2852       
   deltablue                            221.8210+-2.3938    ^   217.0354+-0.7037       ^ definitely 1.0220x faster
   earley-boyer                         131.2414+-1.4716        130.5087+-1.1246       
   raytrace                              84.7087+-0.7870    ^    82.8579+-0.2507       ^ definitely 1.0223x faster
   regexp                               150.7451+-0.9596        149.6161+-0.5901       
   richards                             172.0932+-0.8348        171.5090+-0.6829       
   splay                                107.6565+-0.9108    ?   109.4856+-2.1024       ? might be 1.0170x slower

   <arithmetic>                         137.9667+-0.3386    ^   136.9222+-0.3101       ^ definitely 1.0076x faster
   <geometric> *                        131.2569+-0.3779    ^   130.4303+-0.3221       ^ definitely 1.0063x faster
   <harmonic>                           125.1583+-0.4377        124.4265+-0.3321       

                                            TipOfTree             ValueProfLight                                 
Kraken:
   ai-astar                             896.2943+-0.3387        896.2844+-0.8711       
   audio-beat-detection                 257.3205+-1.9541        255.1301+-0.8087       
   audio-dft                            315.4480+-2.2374        315.2836+-2.3183       
   audio-fft                            167.4601+-0.6950    ?   167.7626+-0.7827       ?
   audio-oscillator                     352.5792+-1.2625        352.5778+-1.3673       
   imaging-darkroom                     407.8628+-8.4575    ?   409.8914+-7.0841       ?
   imaging-desaturate                   291.2592+-0.0634        291.2047+-0.0586       
   imaging-gaussian-blur                751.1046+-0.2562        750.9592+-0.1336       
   json-parse-financial                  87.2852+-0.2184    ^    86.5116+-0.1681       ^ definitely 1.0089x faster
   json-stringify-tinderbox              96.5795+-0.5232    ?    96.7310+-0.7166       ?
   stanford-crypto-aes                  139.0079+-0.5436    ?   139.7928+-0.4772       ?
   stanford-crypto-ccm                  137.9739+-0.5770        137.8845+-0.6332       
   stanford-crypto-pbkdf2               286.8972+-4.3538        285.9257+-2.8639       
   stanford-crypto-sha256-iterative     118.2990+-0.1630    !   119.0997+-0.2469       ! definitely 1.0068x slower

   <arithmetic> *                       307.5265+-0.9617        307.5028+-0.6792       
   <geometric>                          239.9827+-0.6984        239.9576+-0.4946       
   <harmonic>                           193.3875+-0.4159        193.3409+-0.3285       

                                            TipOfTree             ValueProfLight                                 
All benchmarks:
   <arithmetic>                         116.8273+-0.2810        116.6776+-0.2160       
   <geometric>                           30.4575+-0.0615    ?    30.4755+-0.0521       ?
   <harmonic>                             9.3484+-0.0305    ?     9.3705+-0.0246       ?

                                            TipOfTree             ValueProfLight                                 
Geomean of preferred means:
   <scaled-result>                       69.8739+-0.1317         69.7890+-0.1122

-- 
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