[webkit-reviews] review requested: [Bug 84907] Memory wasted in JSString for non-rope strings : [Attachment 138902] Proposed Patch
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Wed Apr 25 17:08:57 PDT 2012
Michael Saboff <msaboff at apple.com> has asked for review:
Bug 84907: Memory wasted in JSString for non-rope strings
https://bugs.webkit.org/show_bug.cgi?id=84907
Attachment 138902: Proposed Patch
https://bugs.webkit.org/attachment.cgi?id=138902&action=review
------- Additional Comments from Michael Saboff <msaboff at apple.com>
This appears overall neutral on performance tests. The only test that looks
like it might slow down in SunSpider string-base64. Other SunSpider tests seem
to offset that loss so that SunSpider nets out with no change.
Benchmark report for SunSpider, V8, and Kraken on msaboff-pro (MacPro5,1).
VMs tested:
"Baseline" at /Volumes/Data/src/webkit.baseline/WebKitBuild/Release/jsc
(r115220)
"StringSplit" at /Volumes/Data/src/webkit.work/WebKitBuild/Release/jsc
(r115220)
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.
Baseline StringSplit
SunSpider:
3d-cube 7.1923+-0.0878
7.1591+-0.1012
3d-morph 7.3342+-0.1166 ?
7.3962+-0.0787 ?
3d-raytrace 9.6550+-0.1114
9.5425+-0.0897 might be 1.0118x faster
access-binary-trees 1.8062+-0.0146 ?
1.8078+-0.0155 ?
access-fannkuch 7.4821+-0.0565 ?
7.5589+-0.0891 ? might be 1.0103x slower
access-nbody 3.8797+-0.0511 ?
3.8995+-0.0594 ?
access-nsieve 3.6100+-0.0518 ?
3.6761+-0.0453 ? might be 1.0183x slower
bitops-3bit-bits-in-byte 1.3877+-0.0126
1.3839+-0.0155
bitops-bits-in-byte 5.4218+-0.0903
5.3617+-0.0706 might be 1.0112x faster
bitops-bitwise-and 3.4084+-0.0385 ?
3.4516+-0.0456 ? might be 1.0127x slower
bitops-nsieve-bits 3.3156+-0.0421 !
3.3741+-0.0106 ! definitely 1.0176x slower
controlflow-recursive 2.4107+-0.0339 ?
2.4555+-0.0269 ? might be 1.0185x slower
crypto-aes 8.1091+-0.0905
8.0742+-0.1588
crypto-md5 3.3620+-0.0474
3.3256+-0.0533 might be 1.0110x faster
crypto-sha1 2.6600+-0.0604 ?
2.6639+-0.0488 ?
date-format-tofte 11.1965+-0.2238 ?
11.2499+-0.1706 ?
date-format-xparb 11.0137+-0.1682
10.7141+-0.1453 might be 1.0280x faster
math-cordic 4.1943+-0.0542
4.1473+-0.0333 might be 1.0113x faster
math-partial-sums 9.7927+-0.1006
9.7874+-0.0972
math-spectral-norm 2.8539+-0.0344
2.8480+-0.0384
regexp-dna 9.7621+-0.0957 ?
9.7827+-0.1204 ?
string-base64 4.7095+-0.0715 !
4.8647+-0.0832 ! definitely 1.0330x slower
string-fasta 7.3884+-0.0862
7.3108+-0.1465 might be 1.0106x faster
string-tagcloud 12.9977+-0.1691
12.9032+-0.1906
string-unpack-code 21.6388+-0.3067
21.5812+-0.2760
string-validate-input 6.6081+-0.1529
6.5152+-0.1037 might be 1.0143x faster
<arithmetic> * 6.6612+-0.0349
6.6475+-0.0364 might be 1.0021x faster
<geometric> 5.4346+-0.0310 ?
5.4368+-0.0296 ? might be 1.0004x slower
<harmonic> 4.3992+-0.0283 ?
4.4095+-0.0260 ? might be 1.0023x slower
Baseline StringSplit
V8:
crypto 75.6874+-0.6223
75.3308+-0.5333
deltablue 154.9205+-1.1508 ?
155.4980+-1.4269 ?
earley-boyer 95.1838+-1.3352
94.8811+-1.4211
raytrace 53.1343+-0.2090 ?
53.3965+-0.4181 ?
regexp 95.1276+-0.4268
94.7119+-0.4922
richards 141.0346+-1.0650
139.7111+-0.5126
splay 90.4939+-11.5016 ?
90.6910+-10.9277 ?
<arithmetic> 100.7975+-1.8471
100.6029+-1.8123 might be 1.0019x faster
<geometric> * 95.2155+-1.8432
95.0883+-1.8053 might be 1.0013x faster
<harmonic> 89.7821+-1.6562
89.7419+-1.6340 might be 1.0004x faster
Baseline StringSplit
Kraken:
ai-astar 821.3973+-10.8685 ?
822.8782+-10.8859 ?
audio-beat-detection 196.3768+-1.2337
195.9786+-1.0787
audio-dft 289.4762+-2.0124 ?
291.9755+-3.5931 ?
audio-fft 118.2653+-0.4089 ?
118.5623+-0.3563 ?
audio-oscillator 305.7648+-1.4518 ?
307.1338+-1.4232 ?
imaging-darkroom 297.0695+-8.0269
296.6311+-8.5114
imaging-desaturate 221.4177+-0.3711 ?
221.4266+-0.4326 ?
imaging-gaussian-blur 459.9391+-2.2574
458.4150+-0.6549
json-parse-financial 63.0999+-0.2543 ^
62.0548+-0.2780 ^ definitely 1.0168x faster
json-stringify-tinderbox 79.7542+-1.2215 ^
77.9880+-0.3781 ^ definitely 1.0226x faster
stanford-crypto-aes 84.5476+-0.4595
83.8717+-0.4741
stanford-crypto-ccm 77.8462+-0.8944
76.5901+-0.7101 might be 1.0164x faster
stanford-crypto-pbkdf2 186.2330+-0.8928 ?
187.4214+-0.9307 ?
stanford-crypto-sha256-iterative 89.8800+-0.2906
89.8685+-0.5059
<arithmetic> * 235.0763+-1.0246
235.0568+-1.2835 might be 1.0001x faster
<geometric> 176.4131+-0.5488
175.8282+-0.5446 might be 1.0033x faster
<harmonic> 138.4484+-0.3933 ^
137.3959+-0.2900 ^ definitely 1.0077x faster
Baseline StringSplit
All benchmarks:
<arithmetic> 88.7200+-0.4915
88.6777+-0.5338 might be 1.0005x faster
<geometric> 23.4720+-0.1403
23.4495+-0.1426 might be 1.0010x faster
<harmonic> 7.7185+-0.0497 ?
7.7350+-0.0458 ? might be 1.0021x slower
Baseline StringSplit
Geomean of preferred means:
<scaled-result> 53.0219+-0.4465
52.9607+-0.4533 might be 1.0012x faster
More information about the webkit-reviews
mailing list