Summary: | JSC: Lower minimum PropertyTable size. | ||||||
---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Andreas Kling <kling> | ||||
Component: | JavaScriptCore | Assignee: | Andreas Kling <kling> | ||||
Status: | RESOLVED FIXED | ||||||
Severity: | Normal | CC: | barraclough, k.gurpreet, kling, sam, webkit-bug-importer, webkit.review.bot | ||||
Priority: | P2 | Keywords: | InRadar, Performance | ||||
Version: | 528+ (Nightly build) | ||||||
Hardware: | Unspecified | ||||||
OS: | Unspecified | ||||||
Attachments: |
|
Description
Andreas Kling
2013-02-07 19:15:23 PST
Created attachment 187219 [details]
Proposed patch
3.32 MB of delicious savings on Membuster3. Looks mostly performance-neutral.
TipOfTree MyChanges
SunSpider:
3d-cube 6.5232+-0.0793 6.4105+-0.0852 might be 1.0176x faster
3d-morph 5.9824+-0.0419 ? 6.0351+-0.0399 ?
3d-raytrace 7.0240+-0.0372 ? 7.0819+-0.0669 ?
access-binary-trees 1.2366+-0.0203 1.2335+-0.0166
access-fannkuch 4.8975+-0.0852 ? 4.8979+-0.0784 ?
access-nbody 2.8287+-0.0309 ? 2.8343+-0.0150 ?
access-nsieve 3.0966+-0.0468 3.0958+-0.0553
bitops-3bit-bits-in-byte 1.3292+-0.0144 1.3240+-0.0111
bitops-bits-in-byte 1.8756+-0.0227 1.8342+-0.0465 might be 1.0226x faster
bitops-bitwise-and 1.7728+-0.0199 1.7710+-0.0259
bitops-nsieve-bits 2.6623+-0.0207 ? 2.6625+-0.0185 ?
controlflow-recursive 1.7381+-0.0093 ? 1.7391+-0.0123 ?
crypto-aes 5.2019+-0.0806 ? 5.2510+-0.0927 ?
crypto-md5 2.5237+-0.0421 ? 2.5624+-0.0566 ? might be 1.0153x slower
crypto-sha1 2.2067+-0.0511 2.2048+-0.0585
date-format-tofte 10.3054+-0.1227 ? 10.3783+-0.1145 ?
date-format-xparb 10.1474+-0.1754 9.9178+-0.1214 might be 1.0232x faster
math-cordic 2.6842+-0.0479 2.6534+-0.0448 might be 1.0116x faster
math-partial-sums 6.4298+-0.0692 6.4233+-0.0658
math-spectral-norm 1.8516+-0.0156 1.8489+-0.0202
regexp-dna 6.7324+-0.0719 6.6581+-0.0687 might be 1.0111x faster
string-base64 3.4500+-0.0493 ? 3.4816+-0.0485 ?
string-fasta 6.4741+-0.2022 6.4210+-0.1034
string-tagcloud 9.6362+-0.1075 9.6076+-0.1284
string-unpack-code 16.4044+-0.1022 ? 16.4703+-0.1639 ?
string-validate-input 5.0306+-0.0749 5.0148+-0.0617
<arithmetic> * 5.0017+-0.0248 4.9928+-0.0248 might be 1.0018x faster
<geometric> 3.9581+-0.0192 3.9510+-0.0176 might be 1.0018x faster
<harmonic> 3.1640+-0.0161 3.1571+-0.0136 might be 1.0022x faster
TipOfTree MyChanges
V8Spider:
crypto 49.9896+-0.3780 49.7222+-0.1601
deltablue 80.3864+-0.1423 ? 80.8041+-0.3026 ?
earley-boyer 48.5154+-0.1355 ? 48.5615+-0.1714 ?
raytrace 42.0675+-0.1009 42.0355+-0.1267
regexp 62.4943+-0.2730 ? 62.8436+-0.2902 ?
richards 70.2934+-0.1234 70.2698+-0.1106
splay 35.0051+-0.1827 ? 35.0658+-0.2012 ?
<arithmetic> 55.5360+-0.0744 ? 55.6146+-0.0655 ? might be 1.0014x slower
<geometric> * 53.5395+-0.0812 ? 53.5931+-0.0663 ? might be 1.0010x slower
<harmonic> 51.6121+-0.0926 ? 51.6473+-0.0801 ? might be 1.0007x slower
TipOfTree MyChanges
Octane and V8v7:
encrypt 0.26286+-0.00138 0.26227+-0.00130
decrypt 4.63459+-0.02254 4.63357+-0.02237
deltablue x2 0.35285+-0.00091 ? 0.35369+-0.00116 ?
earley 0.50558+-0.00180 ! 0.51759+-0.00374 ! definitely 1.0238x slower
boyer 6.90467+-0.00649 ? 6.91600+-0.01284 ?
raytrace x2 2.90555+-0.02197 2.90074+-0.00476
regexp x2 19.89171+-0.06903 19.87960+-0.12697
richards x2 0.17566+-0.00022 0.17565+-0.00024
splay x2 0.47916+-0.05630 0.47852+-0.05014
navier-stokes x2 7.47918+-0.01652 ? 7.48028+-0.01678 ?
closure 0.35727+-0.00188 ^ 0.35400+-0.00130 ^ definitely 1.0092x faster
jquery 5.02275+-0.05076 ? 5.03589+-0.05604 ?
gbemu x2 151.32584+-8.74632 149.18070+-8.26565 might be 1.0144x faster
box2d x2 22.28401+-0.18492 22.27841+-0.14648
V8v7:
<arithmetic> 4.67974+-0.01019 4.67915+-0.01221 might be 1.0001x faster
<geometric> * 1.50363+-0.02223 ? 1.50600+-0.01876 ? might be 1.0016x slower
<harmonic> 0.56076+-0.00936 ? 0.56202+-0.00845 ? might be 1.0023x slower
Octane including V8v7:
<arithmetic> 19.43071+-0.79420 19.23521+-0.75290 might be 1.0102x faster
<geometric> * 2.89043+-0.04338 2.88910+-0.03718 might be 1.0005x faster
<harmonic> 0.69540+-0.01030 ? 0.69626+-0.00928 ? might be 1.0012x slower
TipOfTree MyChanges
Kraken:
ai-astar 251.762+-1.014 251.359+-1.159
audio-beat-detection 148.991+-0.404 ? 149.028+-0.451 ?
audio-dft 222.378+-1.894 ? 223.314+-2.539 ?
audio-fft 86.048+-0.167 ? 86.079+-0.261 ?
audio-oscillator 152.660+-2.999 ? 154.153+-4.246 ?
imaging-darkroom 181.505+-0.424 ? 181.902+-0.725 ?
imaging-desaturate 88.975+-0.087 88.970+-0.113
imaging-gaussian-blur 251.438+-1.088 ? 252.122+-1.318 ?
json-parse-financial 46.249+-0.110 ! 46.821+-0.309 ! definitely 1.0124x slower
json-stringify-tinderbox 59.131+-0.199 ? 62.720+-3.977 ? might be 1.0607x slower
stanford-crypto-aes 59.006+-1.019 58.222+-0.345 might be 1.0135x faster
stanford-crypto-ccm 65.323+-2.715 65.286+-2.654
stanford-crypto-pbkdf2 167.144+-0.851 ^ 164.656+-0.660 ^ definitely 1.0151x faster
stanford-crypto-sha256-iterative 72.995+-0.296 ? 73.255+-0.387 ?
<arithmetic> * 132.400+-0.501 ? 132.706+-0.654 ? might be 1.0023x slower
<geometric> 113.248+-0.574 ? 113.729+-0.731 ? might be 1.0042x slower
<harmonic> 96.806+-0.604 ? 97.437+-0.812 ? might be 1.0065x slower
TipOfTree MyChanges
JSRegress:
adapt-to-double-divide 68.9176+-0.1338 ? 68.9732+-0.1420 ?
aliased-arguments-getbyval 0.6537+-0.0052 ? 0.6548+-0.0081 ?
allocate-big-object 1.5945+-0.0552 ? 1.5976+-0.0355 ?
arity-mismatch-inlining 0.5013+-0.0055 0.4987+-0.0085
array-access-polymorphic-structure 37.1832+-0.1702 ? 37.2117+-0.1194 ?
array-with-double-add 3.6008+-0.0548 ? 3.6127+-0.0322 ?
array-with-double-increment 2.7431+-0.0560 2.7250+-0.0259
array-with-double-mul-add 4.0733+-0.0664 ? 4.1048+-0.0815 ?
array-with-double-sum 3.8390+-0.0354 3.8015+-0.0415
array-with-int32-add-sub 6.0378+-0.0580 6.0088+-0.0492
array-with-int32-or-double-sum 3.8772+-0.0503 3.8672+-0.0709
big-int-mul 3.3378+-0.0315 ? 3.3563+-0.0432 ?
boolean-test 2.6975+-0.0400 2.6973+-0.0257
cast-int-to-double 9.4354+-0.1045 9.3818+-0.0747
cell-argument 10.4471+-0.1032 10.3855+-0.0859
cfg-simplify 2.5333+-0.0324 2.4854+-0.0468 might be 1.0193x faster
cmpeq-obj-to-obj-other 7.7456+-0.0970 ? 7.9194+-0.0815 ? might be 1.0224x slower
constant-test 4.3555+-0.0521 4.3331+-0.0618
direct-arguments-getbyval 0.5908+-0.0073 0.5888+-0.0084
double-pollution-getbyval 8.3314+-0.0852 ? 8.3770+-0.0755 ?
double-pollution-putbyoffset 3.3407+-0.0683 ? 3.4011+-0.0457 ? might be 1.0181x slower
external-arguments-getbyval 1.3251+-0.0058 1.3192+-0.0078
external-arguments-putbyval 2.1008+-0.0346 2.0552+-0.0236 might be 1.0222x faster
Float32Array-matrix-mult 8.3208+-0.0993 8.2007+-0.0888 might be 1.0147x faster
fold-double-to-int 13.9545+-0.2965 13.7218+-0.0867 might be 1.0170x faster
function-dot-apply 1.8851+-0.0156 1.8759+-0.0216
function-test 2.7157+-0.0439 2.7134+-0.0194
get-by-id-chain-from-try-block 4.2266+-0.0548 ? 4.2810+-0.0459 ? might be 1.0129x slower
indexed-properties-in-objects 2.8105+-0.0340 2.7921+-0.0475
inline-arguments-access 0.8447+-0.0057 0.8359+-0.0066 might be 1.0106x faster
inline-arguments-local-escape 12.9130+-0.1502 12.7362+-0.1594 might be 1.0139x faster
inline-get-scoped-var 4.4241+-0.1311 4.3286+-0.0644 might be 1.0220x faster
inlined-put-by-id-transition 9.0127+-0.1790 8.9752+-0.1222
int-or-other-abs-then-get-by-val 5.5346+-0.0455 5.5133+-0.0566
int-or-other-abs-zero-then-get-by-val 23.4853+-0.0791 23.4196+-0.1038
int-or-other-add-then-get-by-val 7.0670+-0.0506 7.0537+-0.0338
int-or-other-add 6.3711+-0.0620 6.3507+-0.0613
int-or-other-div-then-get-by-val 5.1073+-0.2867 ? 5.1193+-0.2086 ?
int-or-other-max-then-get-by-val 6.0304+-0.0379 6.0174+-0.0468
int-or-other-min-then-get-by-val 6.1293+-0.0359 ? 6.2025+-0.0662 ? might be 1.0119x slower
int-or-other-mod-then-get-by-val 4.6658+-0.0516 ? 4.6978+-0.0561 ?
int-or-other-mul-then-get-by-val 4.8973+-0.0640 ? 4.9469+-0.0441 ? might be 1.0101x slower
int-or-other-neg-then-get-by-val 4.9399+-0.0448 ? 4.9464+-0.0397 ?
int-or-other-neg-zero-then-get-by-val 22.0912+-0.1036 22.0184+-0.1328
int-or-other-sub-then-get-by-val 6.7735+-0.0394 ? 6.8126+-0.0323 ?
int-or-other-sub 4.6176+-0.0662 ? 4.6459+-0.0515 ?
int-overflow-local 156.5646+-0.3865 156.4901+-0.4138
Int16Array-bubble-sort 20.6989+-0.1271 20.6272+-0.0961
Int16Array-load-int-mul 1.3119+-0.0054 1.3114+-0.0061
Int8Array-load 2.9765+-0.0163 2.9428+-0.0284 might be 1.0115x faster
integer-divide 10.8732+-0.2363 ? 10.9194+-0.2393 ?
integer-modulo 1.3272+-0.0099 ? 1.3330+-0.0075 ?
make-indexed-storage 2.3990+-0.0250 2.3700+-0.0165 might be 1.0122x faster
method-on-number 151.9784+-2.6162 148.7763+-3.3403 might be 1.0215x faster
new-array-buffer-dead 2.6056+-0.0267 ? 2.6162+-0.0268 ?
new-array-buffer-push 6.5447+-0.0684 6.5347+-0.0718
new-array-dead 21.3988+-0.0830 21.3806+-0.1001
new-array-push 4.3151+-0.0551 4.2947+-0.0892
number-test 2.6895+-0.0323 2.6875+-0.0267
object-closure-call 4.9638+-0.0659 ? 4.9763+-0.0496 ?
object-test 2.9205+-0.0315 ? 2.9214+-0.0316 ?
poly-stricteq 64.9531+-0.1238 64.8184+-0.0880
polymorphic-structure 13.0054+-0.1273 12.9767+-0.0874
polyvariant-monomorphic-get-by-id 7.2779+-0.0590 7.2744+-0.0871
rare-osr-exit-on-local 135.2544+-0.4847 ? 135.4444+-0.5918 ?
register-pressure-from-osr 21.0604+-0.0833 21.0443+-0.1012
simple-activation-demo 24.3983+-0.1671 24.3394+-0.1087
slow-array-profile-convergence 2.7931+-0.0321 2.7647+-0.0479 might be 1.0103x faster
slow-convergence 46.0576+-0.0979 ? 46.1619+-0.1617 ?
sparse-conditional 0.8037+-0.0039 ? 0.8046+-0.0098 ?
splice-to-remove 33.8348+-0.9904 33.2008+-0.1158 might be 1.0191x faster
string-hash 1.8362+-0.0138 ? 1.8411+-0.0243 ?
string-repeat-arith 28.7953+-0.3785 28.4592+-0.1016 might be 1.0118x faster
string-sub 57.8441+-0.8000 ? 58.8389+-0.5789 ? might be 1.0172x slower
string-test 2.6216+-0.0304 ? 2.6538+-0.0216 ? might be 1.0123x slower
structure-hoist-over-transitions 2.0342+-0.0432 ^ 1.9690+-0.0199 ^ definitely 1.0331x faster
tear-off-arguments-simple 1.2095+-0.0147 ? 1.2193+-0.0120 ?
tear-off-arguments 2.2551+-0.0175 ? 2.2644+-0.0282 ?
temporal-structure 13.6797+-0.1486 13.5966+-0.0970
to-int32-boolean 16.6076+-0.1337 16.5723+-0.1336
undefined-test 2.7545+-0.0292 2.7331+-0.0298
<arithmetic> 15.1941+-0.0400 15.1447+-0.0459 might be 1.0033x faster
<geometric> * 5.9731+-0.0238 5.9607+-0.0174 might be 1.0021x faster
<harmonic> 3.1804+-0.0127 3.1728+-0.0099 might be 1.0024x faster
TipOfTree MyChanges
All benchmarks:
<arithmetic> 26.8707+-0.1753 26.8460+-0.1764 might be 1.0009x faster
<geometric> 7.2894+-0.0384 7.2817+-0.0332 might be 1.0010x faster
<harmonic> 2.2863+-0.0199 2.2850+-0.0177 might be 1.0006x faster
TipOfTree MyChanges
Geomean of preferred means:
<scaled-result> 14.3666+-0.0744 14.3639+-0.0716 might be 1.0002x faster
Comment on attachment 187219 [details]
Proposed patch
Looks like you did your homework. Let’s do this!
Comment on attachment 187219 [details] Proposed patch Clearing flags on attachment: 187219 Committed r142260: <http://trac.webkit.org/changeset/142260> All reviewed patches have been landed. Closing bug. Hi Andreas and Darin. As I can see in the latest code this change has been reverted because of no more GC allocation. So incase we are using webkit 123997 version then will this change will have memory reduction for normal live sites? I was planning to take this patch. |