[webkit-reviews] review requested: [Bug 71202] DFG OSR exits should add to value profiles : [Attachment 113022] the patch
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Mon Oct 31 01:42:04 PDT 2011
Filip Pizlo <fpizlo at apple.com> has asked for review:
Bug 71202: DFG OSR exits should add to value profiles
https://bugs.webkit.org/show_bug.cgi?id=71202
Attachment 113022: the patch
https://bugs.webkit.org/attachment.cgi?id=113022&action=review
------- Additional Comments from Filip Pizlo <fpizlo at apple.com>
Implemented 32_64. Fixed some pathologies that I found along the way.
Performance on my MBP:
Benchmark report for SunSpider, V8, and Kraken.
VMs tested:
"TipOfTree" at /Volumes/Data/pizlo/quinary/OpenSource/WebKitBuild/Release/jsc
"OSRExitProfile" at /Volumes/Data/pizlo/OpenSource/WebKitBuild/Release/jsc
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
OSRExitProfile
SunSpider:
3d-cube 7.4545+-0.2832
7.2920+-0.2150 might be 1.0223x faster
3d-morph 7.6612+-0.1539
7.5698+-0.1604 might be 1.0121x faster
3d-raytrace 7.5646+-0.1959
7.5226+-0.2498
access-binary-trees 1.7036+-0.0889
1.6274+-0.0497 might be 1.0468x faster
access-fannkuch 6.5161+-0.1284 ?
6.5336+-0.1356 ?
access-nbody 3.7941+-0.0783
3.7882+-0.0742
access-nsieve 2.6010+-0.1113 ?
2.6077+-0.0756 ?
bitops-3bit-bits-in-byte 1.3291+-0.0764
1.2797+-0.0307 might be 1.0386x faster
bitops-bits-in-byte 2.4330+-0.0468
2.4273+-0.0345
bitops-bitwise-and 3.5000+-0.3836
3.3709+-0.1231 might be 1.0383x faster
bitops-nsieve-bits 5.5452+-0.1208
5.5114+-0.1194
controlflow-recursive 2.1032+-0.0495 ?
2.1054+-0.0467 ?
crypto-aes 7.5267+-0.2766 ?
7.6808+-0.2884 ? might be 1.0205x slower
crypto-md5 2.7573+-0.0798
2.6895+-0.0813 might be 1.0252x faster
crypto-sha1 2.5158+-0.0961 ?
2.5269+-0.0744 ?
date-format-tofte 10.5336+-0.3881
10.0672+-0.3106 might be 1.0463x faster
date-format-xparb 9.2902+-0.2910 ?
9.7650+-0.2773 ? might be 1.0511x slower
math-cordic 6.5445+-0.1407
6.4691+-0.1203 might be 1.0117x faster
math-partial-sums 7.4331+-0.1180 ?
7.4579+-0.1256 ?
math-spectral-norm 2.5659+-0.0569 ?
2.6255+-0.0755 ? might be 1.0232x slower
regexp-dna 11.7454+-0.2662
11.5669+-0.2919 might be 1.0154x faster
string-base64 4.5259+-0.2209 ^
4.0954+-0.1086 ^ definitely 1.1051x faster
string-fasta 6.3696+-0.1226 ?
6.4395+-0.2528 ? might be 1.0110x slower
string-tagcloud 11.8794+-0.5258
11.6764+-0.4317 might be 1.0174x faster
string-unpack-code 21.0209+-0.5359
21.0046+-0.4777
string-validate-input 5.3864+-0.1639
5.3293+-0.2266 might be 1.0107x faster
<arithmetic> * 6.2423+-0.0458
6.1935+-0.0323
<geometric> 5.0308+-0.0482
4.9799+-0.0249 might be 1.0102x faster
<harmonic> 4.0224+-0.0589
3.9694+-0.0275 might be 1.0134x faster
TipOfTree
OSRExitProfile
V8:
crypto 72.7642+-0.4655 !
73.7216+-0.4294 ! definitely 1.0132x slower
deltablue 165.3919+-0.6548 ?
167.2993+-2.5104 ? might be 1.0115x slower
earley-boyer 90.5715+-0.4088 !
91.4635+-0.3694 ! definitely 1.0098x slower
raytrace 63.0878+-0.5189 ?
63.1119+-0.4952 ?
regexp 104.5092+-0.2850 ?
104.6082+-0.5008 ?
richards 125.1410+-0.7511
124.6242+-0.4366
splay 92.6263+-0.8803
91.7876+-0.3696
<arithmetic> 102.0131+-0.2478 ?
102.3737+-0.3549 ?
<geometric> * 97.4202+-0.2436 ?
97.7310+-0.2245 ?
<harmonic> 93.2800+-0.2585 ?
93.5759+-0.1745 ?
TipOfTree
OSRExitProfile
Kraken:
ai-astar 497.8291+-2.2483
495.2406+-4.7121
audio-beat-detection 190.5957+-1.5949 ?
191.3128+-2.4672 ?
audio-dft 271.3709+-7.4366
264.9552+-2.7768 might be 1.0242x faster
audio-fft 124.2120+-1.0364
123.6318+-0.7699
audio-oscillator 251.2518+-1.6367 ?
252.5525+-1.8577 ?
imaging-darkroom 438.3063+-43.5788 ^
300.6240+-3.8107 ^ definitely 1.4580x faster
imaging-desaturate 225.0933+-0.9025
224.7551+-1.1130
imaging-gaussian-blur 553.4834+-2.1758
552.4078+-2.6317
json-parse-financial 57.6940+-0.2728
57.5327+-0.5092
json-stringify-tinderbox 68.7863+-0.7813
68.4622+-0.6336
stanford-crypto-aes 133.4748+-1.5811 ^
96.9603+-1.0838 ^ definitely 1.3766x faster
stanford-crypto-ccm 100.3808+-1.5548
99.5330+-1.0401
stanford-crypto-pbkdf2 192.9906+-0.8765 ?
196.4618+-2.8331 ? might be 1.0180x slower
stanford-crypto-sha256-iterative 71.0408+-0.7204 !
79.7118+-0.3803 ! definitely 1.1221x slower
<arithmetic> * 226.8936+-2.7807 ^
214.5816+-0.4404 ^ definitely 1.0574x faster
<geometric> 177.8281+-0.9731 ^
170.3935+-0.4246 ^ definitely 1.0436x faster
<harmonic> 139.7862+-0.3273 ^
136.3782+-0.4782 ^ definitely 1.0250x faster
TipOfTree
OSRExitProfile
All benchmarks:
<arithmetic> 86.2320+-0.8017 ^
82.5912+-0.1293 ^ definitely 1.0441x faster
<geometric> 22.6213+-0.1161 ^
22.2213+-0.0647 ^ definitely 1.0180x faster
<harmonic> 7.0792+-0.1007
6.9861+-0.0471 might be 1.0133x faster
TipOfTree
OSRExitProfile
Geomean of preferred means:
<scaled-result> 51.6707+-0.1784 ^
50.6426+-0.1111 ^ definitely 1.0203x faster
Performance on my Mac Pro:
Benchmark report for SunSpider, V8, and Kraken.
VMs tested:
"TipOfTree" at
/Volumes/Data/fromMiniMe/quinary/OpenSource/WebKitBuild/Release/jsc
"OSRExitProfile" at /Volumes/Data/fromMiniMe/OpenSource/WebKitBuild/Release/jsc
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
OSRExitProfile
SunSpider:
3d-cube 7.9226+-0.0726
7.9218+-0.0725
3d-morph 8.4109+-0.0357 !
8.6122+-0.1463 ! definitely 1.0239x slower
3d-raytrace 8.2457+-0.1275
8.1584+-0.0989 might be 1.0107x faster
access-binary-trees 1.7159+-0.0235
1.7122+-0.0244
access-fannkuch 7.7707+-0.0323 !
7.8800+-0.0327 ! definitely 1.0141x slower
access-nbody 4.6132+-0.0267 ^
4.5377+-0.0119 ^ definitely 1.0166x faster
access-nsieve 3.2429+-0.0318
3.2209+-0.0202
bitops-3bit-bits-in-byte 1.3253+-0.0088
1.3217+-0.0118
bitops-bits-in-byte 4.9741+-0.0289 ?
4.9939+-0.0235 ?
bitops-bitwise-and 3.4683+-0.0677 ?
3.4788+-0.0910 ?
bitops-nsieve-bits 5.7003+-0.0376
5.6874+-0.0379
controlflow-recursive 2.3656+-0.0301
2.3521+-0.0241
crypto-aes 7.6225+-0.0454 !
7.7965+-0.0962 ! definitely 1.0228x slower
crypto-md5 2.8842+-0.0301 ?
2.8846+-0.0220 ?
crypto-sha1 2.6554+-0.0292
2.6467+-0.0274
date-format-tofte 10.8094+-0.0904
10.6824+-0.1033 might be 1.0119x faster
date-format-xparb 10.2739+-0.0636 !
11.2169+-0.4809 ! definitely 1.0918x slower
math-cordic 7.2778+-0.0287
7.2759+-0.0338
math-partial-sums 10.5738+-0.0555
10.5579+-0.0218
math-spectral-norm 2.9220+-0.0349
2.8988+-0.0226
regexp-dna 13.4306+-0.1902 ?
13.6700+-0.2354 ? might be 1.0178x slower
string-base64 4.5318+-0.0131 ^
4.3737+-0.0480 ^ definitely 1.0361x faster
string-fasta 7.1551+-0.0175 ?
7.2128+-0.0580 ?
string-tagcloud 13.1124+-0.0961
13.0921+-0.0823
string-unpack-code 23.1503+-0.2013
23.0892+-0.1106
string-validate-input 5.8721+-0.0375 ^
5.7439+-0.0192 ^ definitely 1.0223x faster
<arithmetic> * 7.0010+-0.0275 ?
7.0392+-0.0385 ?
<geometric> 5.6642+-0.0235 ?
5.6740+-0.0273 ?
<harmonic> 4.4911+-0.0229
4.4824+-0.0236
TipOfTree
OSRExitProfile
V8:
crypto 81.4879+-0.5618 ?
81.6116+-0.5521 ?
deltablue 182.8618+-1.5267
182.3407+-1.5476
earley-boyer 114.2309+-0.5866 ^
112.4634+-0.4256 ^ definitely 1.0157x faster
raytrace 70.4738+-0.2521 ^
69.4215+-0.7369 ^ definitely 1.0152x faster
regexp 125.1142+-0.8947
124.7320+-0.4422
richards 141.8218+-0.2707 !
144.2976+-0.3103 ! definitely 1.0175x slower
splay 122.3796+-0.5153 ^
121.3030+-0.5030 ^ definitely 1.0089x faster
<arithmetic> 119.7671+-0.3736
119.4528+-0.2912
<geometric> * 114.6531+-0.3189
114.2175+-0.2599
<harmonic> 109.5415+-0.2858
108.9818+-0.2788
TipOfTree
OSRExitProfile
Kraken:
ai-astar 816.5574+-12.8439 ?
827.0204+-0.7326 ? might be 1.0128x slower
audio-beat-detection 213.8757+-0.9533 ^
211.2199+-0.9561 ^ definitely 1.0126x faster
audio-dft 269.7655+-7.9556
262.5692+-3.1835 might be 1.0274x faster
audio-fft 133.3203+-0.2228 !
137.8996+-0.6059 ! definitely 1.0343x slower
audio-oscillator 292.7531+-1.2667 ?
293.1369+-1.3357 ?
imaging-darkroom 462.4961+-11.1884 ^
340.0617+-5.4201 ^ definitely 1.3600x faster
imaging-desaturate 245.5975+-0.4425 ^
241.5062+-0.2790 ^ definitely 1.0169x faster
imaging-gaussian-blur 622.4428+-0.6371
622.2575+-0.5368
json-parse-financial 71.9435+-0.6837
71.3530+-0.4389
json-stringify-tinderbox 79.4496+-0.4179
79.4022+-0.3451
stanford-crypto-aes 154.8135+-2.3105 ^
116.4911+-0.5211 ^ definitely 1.3290x faster
stanford-crypto-ccm 116.2768+-1.2510 ?
116.3312+-0.6872 ?
stanford-crypto-pbkdf2 235.4881+-1.7905 ?
236.9285+-1.1141 ?
stanford-crypto-sha256-iterative 85.8812+-0.1605 !
98.6669+-0.2702 ! definitely 1.1489x slower
<arithmetic> * 271.4758+-1.2765 ^
261.0603+-0.3748 ^ definitely 1.0399x faster
<geometric> 207.2575+-0.4542 ^
200.5239+-0.3073 ^ definitely 1.0336x faster
<harmonic> 163.1304+-0.2808 ^
160.4491+-0.2487 ^ definitely 1.0167x faster
TipOfTree
OSRExitProfile
All benchmarks:
<arithmetic> 102.5757+-0.3941 ^
99.4475+-0.1162 ^ definitely 1.0315x faster
<geometric> 25.9042+-0.0727 ^
25.6604+-0.0722 ^ definitely 1.0095x faster
<harmonic> 7.9138+-0.0395
7.8966+-0.0406
TipOfTree
OSRExitProfile
Geomean of preferred means:
<scaled-result> 60.1758+-0.1473 ^
59.4285+-0.1256 ^ definitely 1.0126x faster
More information about the webkit-reviews
mailing list