[webkit-reviews] review requested: [Bug 72311] Inline caches that refer to otherwise dead objects should be cleared : [Attachment 115728] the patch
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Thu Nov 17 20:01:07 PST 2011
Filip Pizlo <fpizlo at apple.com> has asked for review:
Bug 72311: Inline caches that refer to otherwise dead objects should be cleared
https://bugs.webkit.org/show_bug.cgi?id=72311
Attachment 115728: the patch
https://bugs.webkit.org/attachment.cgi?id=115728&action=review
------- Additional Comments from Filip Pizlo <fpizlo at apple.com>
This combines the patch on https://bugs.webkit.org/show_bug.cgi?id=72312 with
full inline cache clearing support. So far it looks like it works, and
performance looks mostly fine, except something strange is happening in
V8-regexp.
[pizlo at nitroflex bencher] ./bencher
TipOfTree:/Volumes/Data/pizlo/quinary/OpenSource/WebKitBuild/Release/jsc
WeakCaches:/Volumes/Data/pizlo/secondary/OpenSource/WebKitBuild/Release/jsc
--remote oldmac,bigmac
Packaging VM builds for remote hosts...
Sending VM builds to oldmac...
Running on oldmac...
376/376
Generating benchmark report at
TipOfTree_WeakCaches_SunSpiderV8Kraken_20111117_1949_benchReport.txt
Benchmark report for SunSpider, V8, and Kraken on oldmac.local (MacPro4,1).
VMs tested:
"TipOfTree" at /Volumes/Data/pizlo/quinary/OpenSource/WebKitBuild/Release/jsc
(r100674)
"WeakCaches" at
/Volumes/Data/pizlo/secondary/OpenSource/WebKitBuild/Release/jsc (r100674)
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 WeakCaches
SunSpider:
3d-cube 9.0475+-0.0387
8.9664+-0.0477
3d-morph 10.4450+-0.1721 ^
10.1015+-0.0355 ^ definitely 1.0340x faster
3d-raytrace 9.2003+-0.0617 ?
9.2515+-0.0654 ?
access-binary-trees 1.9097+-0.0069 ?
1.9349+-0.0326 ? might be 1.0132x slower
access-fannkuch 9.1217+-0.0200 ^
9.0871+-0.0084 ^ definitely 1.0038x faster
access-nbody 5.0345+-0.0044 ?
5.0679+-0.0381 ?
access-nsieve 3.7133+-0.0101
3.7111+-0.0060
bitops-3bit-bits-in-byte 1.4966+-0.0164
1.4959+-0.0184
bitops-bits-in-byte 5.9275+-0.0180 ?
5.9298+-0.0159 ?
bitops-bitwise-and 3.9731+-0.0059 ?
3.9737+-0.0080 ?
bitops-nsieve-bits 6.7840+-0.0316 ?
6.8390+-0.0420 ?
controlflow-recursive 2.7644+-0.0177 ?
2.7921+-0.0369 ? might be 1.0100x slower
crypto-aes 8.8837+-0.3084
8.6743+-0.0546 might be 1.0241x faster
crypto-md5 3.0347+-0.0590
2.9922+-0.0132 might be 1.0142x faster
crypto-sha1 2.6152+-0.0334 ?
2.6323+-0.0314 ?
date-format-tofte 12.9762+-0.1771 ?
13.1488+-0.0922 ? might be 1.0133x slower
date-format-xparb 13.8699+-0.1296 !
14.2420+-0.1412 ! definitely 1.0268x slower
math-cordic 8.6768+-0.0372 ^
8.6144+-0.0209 ^ definitely 1.0073x faster
math-partial-sums 12.6416+-0.0401
12.6347+-0.0488
math-spectral-norm 3.1685+-0.0557
3.1329+-0.0089 might be 1.0114x faster
regexp-dna 15.6974+-0.0541 ?
15.7449+-0.0606 ?
string-base64 4.7532+-0.0370 ?
4.7739+-0.0392 ?
string-fasta 8.9202+-0.0318 ?
9.0204+-0.0890 ? might be 1.0112x slower
string-tagcloud 15.9672+-0.1008
15.7997+-0.1061 might be 1.0106x faster
string-unpack-code 27.4349+-0.1522 ?
27.4398+-0.0469 ?
string-validate-input 6.9217+-0.1974
6.7428+-0.0794 might be 1.0265x faster
<arithmetic> * 8.2684+-0.0264
8.2594+-0.0244 might be 1.0011x faster
<geometric> 6.5486+-0.0233
6.5411+-0.0212 might be 1.0011x faster
<harmonic> 5.0696+-0.0217 ?
5.0700+-0.0222 ? might be 1.0001x slower
TipOfTree WeakCaches
V8:
crypto 93.3679+-0.3252 ?
93.7752+-0.3924 ?
deltablue 205.0419+-0.7970 !
207.4518+-1.3348 ! definitely 1.0118x slower
earley-boyer 127.6397+-1.6513
125.9481+-1.5823 might be 1.0134x faster
raytrace 75.9334+-0.2453 ?
76.5853+-0.5557 ?
regexp 147.4395+-0.4611 !
148.2696+-0.2811 ! definitely 1.0056x slower
richards 166.2447+-0.2814
166.0438+-0.3616
splay 107.5413+-1.4244
106.9378+-0.7132
<arithmetic> 131.8869+-0.4721 ?
132.1445+-0.3777 ? might be 1.0020x slower
<geometric> * 125.4485+-0.5032 ?
125.6287+-0.3867 ? might be 1.0014x slower
<harmonic> 119.2648+-0.5089 ?
119.4452+-0.4084 ? might be 1.0015x slower
TipOfTree WeakCaches
Kraken:
ai-astar 895.4246+-0.9915
895.1654+-0.4022
audio-beat-detection 248.5174+-0.3483 !
250.5549+-0.8042 ! definitely 1.0082x slower
audio-dft 314.1673+-2.4462 ?
314.1825+-2.4322 ?
audio-fft 162.3186+-0.8125 ?
162.3518+-0.7823 ?
audio-oscillator 355.8777+-3.1971 ^
344.9823+-4.3299 ^ definitely 1.0316x faster
imaging-darkroom 404.1052+-5.4632 ?
405.4850+-6.1308 ?
imaging-desaturate 291.2879+-0.1209
291.1845+-0.0613
imaging-gaussian-blur 750.8557+-0.3035 ?
752.8046+-3.3790 ?
json-parse-financial 89.8248+-0.6193
89.5875+-0.1899
json-stringify-tinderbox 104.5581+-0.2745 ?
105.1705+-0.5748 ?
stanford-crypto-aes 143.2029+-1.6641
143.0827+-0.7456
stanford-crypto-ccm 137.4856+-0.5693 !
140.4658+-1.0226 ! definitely 1.0217x slower
stanford-crypto-pbkdf2 280.5099+-1.9514 ?
283.5715+-2.2643 ? might be 1.0109x slower
stanford-crypto-sha256-iterative 112.9657+-0.2543
112.9229+-0.2411
<arithmetic> * 306.5072+-0.4968 ?
306.5366+-0.6874 ? might be 1.0001x slower
<geometric> 239.8899+-0.4148 ?
240.1797+-0.5115 ? might be 1.0012x slower
<harmonic> 194.6864+-0.3307 ?
195.1378+-0.3639 ? might be 1.0023x slower
TipOfTree WeakCaches
All benchmarks:
<arithmetic> 115.5168+-0.1711 ?
115.5589+-0.2314 ? might be 1.0004x slower
<geometric> 29.7140+-0.0748
29.7123+-0.0711 might be 1.0001x faster
<harmonic> 8.9367+-0.0377 ?
8.9378+-0.0384 ? might be 1.0001x slower
TipOfTree WeakCaches
Geomean of preferred means:
<scaled-result> 68.2507+-0.1561 ?
68.2608+-0.1430 ? might be 1.0001x slower
Sending VM builds to bigmac...
Running on bigmac...
376/376
Generating benchmark report at
TipOfTree_WeakCaches_SunSpiderV8Kraken_20111117_1951_benchReport.txt
Benchmark report for SunSpider, V8, and Kraken on bigmac.local (MacPro5,1).
VMs tested:
"TipOfTree" at /Volumes/Data/pizlo/quinary/OpenSource/WebKitBuild/Release/jsc
(r100674)
"WeakCaches" at
/Volumes/Data/pizlo/secondary/OpenSource/WebKitBuild/Release/jsc (r100674)
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 WeakCaches
SunSpider:
3d-cube 7.5728+-0.1215
7.4300+-0.0254 might be 1.0192x faster
3d-morph 8.4423+-0.0879 ?
8.4828+-0.1291 ?
3d-raytrace 7.6856+-0.0513 ?
7.7025+-0.0624 ?
access-binary-trees 1.5943+-0.0069 ?
1.5977+-0.0082 ?
access-fannkuch 7.5383+-0.0104 ^
7.5180+-0.0082 ^ definitely 1.0027x faster
access-nbody 4.1663+-0.0092 !
4.1817+-0.0061 ! definitely 1.0037x slower
access-nsieve 3.1429+-0.0427
3.1428+-0.0375
bitops-3bit-bits-in-byte 1.2399+-0.0138
1.2390+-0.0095
bitops-bits-in-byte 4.9107+-0.0055
4.8973+-0.0198
bitops-bitwise-and 3.2831+-0.0045 ?
3.2890+-0.0055 ?
bitops-nsieve-bits 5.6333+-0.0338 ?
5.6556+-0.0387 ?
controlflow-recursive 2.2875+-0.0123 ?
2.2913+-0.0126 ?
crypto-aes 7.1496+-0.0385 ?
7.3631+-0.2183 ? might be 1.0299x slower
crypto-md5 2.4973+-0.0094
2.4956+-0.0086
crypto-sha1 2.1853+-0.0329
2.1757+-0.0174
date-format-tofte 10.6273+-0.0559 !
10.7725+-0.0539 ! definitely 1.0137x slower
date-format-xparb 11.4395+-0.2274 ?
11.4434+-0.0890 ?
math-cordic 7.1588+-0.0780 ?
7.1610+-0.0499 ?
math-partial-sums 10.4612+-0.0344 ?
10.4707+-0.0383 ?
math-spectral-norm 2.6258+-0.0326
2.6008+-0.0081
regexp-dna 12.9697+-0.0534 ?
13.0062+-0.0585 ?
string-base64 3.9142+-0.0170 ?
3.9304+-0.0123 ?
string-fasta 7.3654+-0.0195 !
7.4126+-0.0144 ! definitely 1.0064x slower
string-tagcloud 13.0923+-0.0652 ^
12.9657+-0.0327 ^ definitely 1.0098x faster
string-unpack-code 22.2100+-0.1262
22.1619+-0.0837
string-validate-input 5.5449+-0.0392 ?
5.6332+-0.0621 ? might be 1.0159x slower
<arithmetic> * 6.7976+-0.0218 ?
6.8085+-0.0208 ? might be 1.0016x slower
<geometric> 5.4030+-0.0185 ?
5.4117+-0.0177 ? might be 1.0016x slower
<harmonic> 4.1972+-0.0165 ?
4.2005+-0.0144 ? might be 1.0008x slower
TipOfTree WeakCaches
V8:
crypto 77.3068+-0.2470 ?
78.5472+-1.0606 ? might be 1.0160x slower
deltablue 169.1565+-0.5722 ?
169.9061+-0.7509 ?
earley-boyer 105.8436+-1.2681 ?
106.1506+-1.8865 ?
raytrace 62.5844+-0.6697 ?
63.4609+-0.5217 ? might be 1.0140x slower
regexp 123.0489+-0.4275 !
124.9241+-0.9108 ! definitely 1.0152x slower
richards 138.1625+-0.3256 ?
138.3885+-0.7911 ?
splay 90.0783+-0.9855 ?
90.5373+-1.2191 ?
<arithmetic> 109.4544+-0.2879 !
110.2735+-0.4132 ! definitely 1.0075x slower
<geometric> * 104.1137+-0.3218 !
104.9882+-0.4307 ! definitely 1.0084x slower
<harmonic> 98.9421+-0.3618 !
99.8732+-0.4189 ! definitely 1.0094x slower
TipOfTree WeakCaches
Kraken:
ai-astar 817.2374+-11.1240 ?
827.1865+-0.5183 ? might be 1.0122x slower
audio-beat-detection 203.9402+-0.3269 !
206.1474+-0.6714 ! definitely 1.0108x slower
audio-dft 261.1492+-2.3054
259.6474+-2.6116
audio-fft 132.7391+-0.0777 ?
132.8311+-0.1997 ?
audio-oscillator 294.2755+-1.5612 ^
283.3337+-4.9055 ^ definitely 1.0386x faster
imaging-darkroom 333.9641+-4.6759 ?
334.3031+-4.9627 ?
imaging-desaturate 240.7603+-0.1246 ?
240.8660+-0.3476 ?
imaging-gaussian-blur 620.6148+-0.1868 ?
621.9812+-2.4208 ?
json-parse-financial 73.2566+-0.4176 !
74.1150+-0.3143 ! definitely 1.0117x slower
json-stringify-tinderbox 86.3845+-0.2568 ?
86.7771+-0.2189 ?
stanford-crypto-aes 117.3842+-0.6165 ?
118.7492+-0.7655 ? might be 1.0116x slower
stanford-crypto-ccm 116.1933+-0.9027 ?
117.1747+-0.7135 ?
stanford-crypto-pbkdf2 233.0368+-1.4568
232.9577+-0.2467
stanford-crypto-sha256-iterative 93.1566+-0.2464
93.0921+-0.3027
<arithmetic> * 258.8638+-1.0708 ?
259.2259+-0.4904 ? might be 1.0014x slower
<geometric> 199.5603+-0.5626 ?
199.8244+-0.4281 ? might be 1.0013x slower
<harmonic> 160.8641+-0.4246 ?
161.4155+-0.3345 ? might be 1.0034x slower
TipOfTree WeakCaches
All benchmarks:
<arithmetic> 97.1705+-0.3044 ?
97.4063+-0.1669 ? might be 1.0024x slower
<geometric> 24.5976+-0.0601 ?
24.6601+-0.0603 ? might be 1.0025x slower
<harmonic> 7.3988+-0.0285 ?
7.4055+-0.0250 ? might be 1.0009x slower
TipOfTree WeakCaches
Geomean of preferred means:
<scaled-result> 56.7948+-0.1173 ?
57.0104+-0.1230 ? might be 1.0038x slower
[pizlo at nitroflex bencher]
More information about the webkit-reviews
mailing list