| Summary: | Make MarkedBlock and WeakBlock 4x smaller. | ||||||
|---|---|---|---|---|---|---|---|
| Product: | WebKit | Reporter: | Andreas Kling <kling> | ||||
| Component: | JavaScriptCore | Assignee: | Andreas Kling <kling> | ||||
| Status: | RESOLVED FIXED | ||||||
| Severity: | Normal | CC: | ggaren, kling, mhahnenb | ||||
| Priority: | P2 | Keywords: | Performance | ||||
| Version: | 528+ (Nightly build) | ||||||
| Hardware: | Unspecified | ||||||
| OS: | Unspecified | ||||||
| Attachments: |
|
||||||
|
Description
Andreas Kling
2015-04-15 15:17:50 PDT
Created attachment 250874 [details]
Patch
Benchmark report for SunSpider, LongSpider, V8Spider, Octane, Kraken, JSRegress, AsmBench, and CompressionBench on spacecake (MacPro6,1).
VMs tested:
"BO" at /Volumes/Data/Source/Safari/ToT-Clean/WebKitBuild/Release/jsc
"AXE" at /Volumes/Data/Source/Safari/OpenSource/WebKitBuild/Release/jsc
Collected 4 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.
BO AXE
SunSpider:
3d-cube 5.3124+-0.2047 5.2454+-0.0943 might be 1.0128x faster
3d-morph 6.1514+-0.1600 6.1342+-0.1554
3d-raytrace 6.9675+-0.1385 6.8185+-0.2188 might be 1.0219x faster
access-binary-trees 2.4368+-0.0947 2.3693+-0.0243 might be 1.0285x faster
access-fannkuch 6.2316+-0.3488 6.2107+-0.3249
access-nbody 3.1663+-0.0814 3.0799+-0.0806 might be 1.0280x faster
access-nsieve 3.8538+-0.2135 3.6467+-0.1475 might be 1.0568x faster
bitops-3bit-bits-in-byte 1.8404+-0.1170 1.8136+-0.0517 might be 1.0148x faster
bitops-bits-in-byte 3.7824+-0.1537 ? 3.8103+-0.1519 ?
bitops-bitwise-and 2.3906+-0.0847 ? 2.4443+-0.2318 ? might be 1.0225x slower
bitops-nsieve-bits 4.0120+-0.1870 3.8978+-0.0876 might be 1.0293x faster
controlflow-recursive 2.3546+-0.0645 ? 2.4251+-0.0185 ? might be 1.0300x slower
crypto-aes 4.6707+-0.1032 4.4871+-0.2847 might be 1.0409x faster
crypto-md5 2.6117+-0.0329 ? 2.6376+-0.1666 ?
crypto-sha1 2.8610+-0.0855 2.8102+-0.0328 might be 1.0181x faster
date-format-tofte 9.7930+-0.4122 ? 10.1357+-0.0883 ? might be 1.0350x slower
date-format-xparb 5.8846+-0.3533 5.4700+-0.2038 might be 1.0758x faster
math-cordic 3.4144+-0.0253 ? 3.4543+-0.0928 ? might be 1.0117x slower
math-partial-sums 5.6042+-0.2556 5.4873+-0.0688 might be 1.0213x faster
math-spectral-norm 2.1588+-0.0400 ? 2.2460+-0.1367 ? might be 1.0404x slower
regexp-dna 7.4401+-0.2432 ? 7.4950+-0.3283 ?
string-base64 4.6455+-0.1035 4.6212+-0.0405
string-fasta 7.0834+-0.3122 6.8721+-0.2123 might be 1.0307x faster
string-tagcloud 10.0217+-0.0255 ? 10.0836+-0.4424 ?
string-unpack-code 21.1861+-0.5162 20.8375+-0.6203 might be 1.0167x faster
string-validate-input 5.0027+-0.1193 ? 5.0938+-0.1773 ? might be 1.0182x slower
<arithmetic> 5.4184+-0.0287 5.3703+-0.0213 might be 1.0090x faster
BO AXE
LongSpider:
3d-cube 904.3926+-21.4545 ^ 861.3475+-6.4430 ^ definitely 1.0500x faster
3d-morph 1634.8491+-7.0456 1633.5402+-4.4904
3d-raytrace 787.0019+-2.7971 ? 788.5394+-13.9676 ?
access-binary-trees 1004.3445+-5.3588 ? 1009.9066+-11.3908 ?
access-fannkuch 349.0145+-10.5963 345.5499+-5.5052 might be 1.0100x faster
access-nbody 649.4805+-1.0111 ! 655.9157+-1.7641 ! definitely 1.0099x slower
access-nsieve 837.2178+-9.0473 837.1707+-10.0336
bitops-3bit-bits-in-byte 49.3583+-0.4966 ? 50.1943+-0.8238 ? might be 1.0169x slower
bitops-bits-in-byte 98.2145+-3.8984 ? 99.9626+-1.2433 ? might be 1.0178x slower
bitops-nsieve-bits 763.6873+-9.8139 760.6769+-6.3963
controlflow-recursive 531.4977+-2.8876 ^ 522.1580+-1.6424 ^ definitely 1.0179x faster
crypto-aes 717.4895+-3.5195 ? 720.6940+-10.9024 ?
crypto-md5 589.5162+-2.3055 582.4601+-13.4977 might be 1.0121x faster
crypto-sha1 661.1862+-16.4368 655.3258+-4.2036
date-format-tofte 794.0353+-12.7888 ? 812.2611+-26.0680 ? might be 1.0230x slower
date-format-xparb 797.8284+-14.1077 ? 799.7114+-37.2043 ?
math-cordic 630.8295+-4.1514 630.0887+-2.5887
math-partial-sums 537.9346+-2.6588 ? 542.1467+-6.5583 ?
math-spectral-norm 603.6270+-3.2389 602.8115+-3.6672
string-base64 371.3326+-12.7748 ? 382.4376+-5.4110 ? might be 1.0299x slower
string-fasta 467.2502+-15.2119 450.2410+-5.6344 might be 1.0378x faster
string-tagcloud 232.9247+-7.6140 229.5247+-2.2717 might be 1.0148x faster
<geometric> 522.9267+-1.0899 522.0318+-0.9360 might be 1.0017x faster
BO AXE
V8Spider:
crypto 59.8049+-0.8519 59.6380+-0.5543
deltablue 77.8837+-1.2742 ? 79.9221+-1.8790 ? might be 1.0262x slower
earley-boyer 43.6544+-0.5165 ? 45.8703+-2.2336 ? might be 1.0508x slower
raytrace 34.4373+-1.0763 ? 35.0862+-0.8457 ? might be 1.0188x slower
regexp 70.5182+-1.3234 69.2200+-0.8141 might be 1.0188x faster
richards 83.4803+-2.1650 ? 83.7681+-1.6380 ?
splay 39.3003+-2.6308 38.2538+-0.8822 might be 1.0274x faster
<geometric> 55.4822+-0.2034 ? 55.8758+-0.4041 ? might be 1.0071x slower
BO AXE
Octane:
encrypt 0.23680+-0.00355 0.23460+-0.00094
decrypt 4.14548+-0.06261 4.13557+-0.02105
deltablue x2 0.21702+-0.00307 ? 0.21730+-0.00151 ?
earley 0.60350+-0.01475 ? 0.60547+-0.00236 ?
boyer 6.79201+-0.03350 ! 6.87880+-0.01045 ! definitely 1.0128x slower
navier-stokes x2 5.56547+-0.00917 ? 5.57165+-0.03358 ?
raytrace x2 1.26205+-0.07013 ? 1.27902+-0.06659 ? might be 1.0135x slower
richards x2 0.12353+-0.00263 ? 0.12450+-0.00368 ?
splay x2 0.39500+-0.00347 ! 0.41104+-0.00666 ! definitely 1.0406x slower
regexp x2 33.12252+-0.37352 33.01513+-0.67381
pdfjs x2 47.41298+-1.22544 47.11950+-0.16379
mandreel x2 56.58420+-0.64600 56.51368+-0.56204
gbemu x2 42.40911+-0.39027 42.25367+-0.25213
closure 0.62118+-0.00516 0.62036+-0.00711
jquery 7.82071+-0.03333 ! 7.90711+-0.04668 ! definitely 1.0110x slower
box2d x2 13.54643+-0.04813 ? 13.72254+-0.24410 ? might be 1.0130x slower
zlib x2 398.22044+-31.31341 ? 415.25692+-1.77055 ? might be 1.0428x slower
typescript x2 885.87708+-27.28859 ? 886.44458+-21.54617 ?
<geometric> 7.10305+-0.02210 ! 7.15650+-0.01738 ! definitely 1.0075x slower
BO AXE
Kraken:
ai-astar 356.661+-8.679 352.213+-11.858 might be 1.0126x faster
audio-beat-detection 114.928+-2.613 114.609+-2.115
audio-dft 149.980+-2.451 148.105+-4.527 might be 1.0127x faster
audio-fft 83.971+-2.826 83.511+-1.147
audio-oscillator 222.603+-8.561 219.808+-0.934 might be 1.0127x faster
imaging-darkroom 111.209+-0.554 110.752+-0.894
imaging-desaturate 69.593+-0.858 69.063+-1.258
imaging-gaussian-blur 117.873+-0.783 117.503+-1.226
json-parse-financial 46.727+-1.032 ? 49.478+-4.803 ? might be 1.0589x slower
json-stringify-tinderbox 59.842+-0.576 58.777+-0.844 might be 1.0181x faster
stanford-crypto-aes 64.979+-3.726 64.101+-0.894 might be 1.0137x faster
stanford-crypto-ccm 59.819+-10.008 59.271+-9.840
stanford-crypto-pbkdf2 183.386+-15.966 179.328+-2.747 might be 1.0226x faster
stanford-crypto-sha256-iterative 58.809+-2.343 57.741+-0.562 might be 1.0185x faster
<arithmetic> 121.456+-1.539 120.304+-1.733 might be 1.0096x faster
BO AXE
JSRegress:
abs-boolean 2.8148+-0.0581 ? 2.8397+-0.1532 ?
adapt-to-double-divide 17.6067+-0.3011 17.5671+-0.2994
aliased-arguments-getbyval 1.4095+-0.1380 ? 1.4480+-0.1718 ? might be 1.0273x slower
allocate-big-object 2.5697+-0.0448 ? 2.7820+-0.1826 ? might be 1.0826x slower
arguments-named-and-reflective 12.3537+-0.5486 12.1307+-0.2705 might be 1.0184x faster
arguments-out-of-bounds 15.4832+-0.4528 15.3765+-1.3123
arguments-strict-mode 11.1330+-0.0387 ^ 10.8450+-0.1376 ^ definitely 1.0266x faster
arguments 9.7797+-0.1601 ? 9.9943+-0.4190 ? might be 1.0219x slower
arity-mismatch-inlining 1.0500+-0.0261 1.0100+-0.0329 might be 1.0396x faster
array-access-polymorphic-structure 6.4428+-0.3370 ? 6.7060+-0.2127 ? might be 1.0408x slower
array-nonarray-polymorhpic-access 37.4465+-0.9177 36.2528+-2.9532 might be 1.0329x faster
array-prototype-every 90.8048+-0.4646 90.3806+-0.6239
array-prototype-forEach 87.9794+-0.5539 ? 88.0450+-1.2445 ?
array-prototype-map 100.7972+-2.2734 97.5763+-1.1320 might be 1.0330x faster
array-prototype-some 92.2256+-2.5984 90.6516+-0.6609 might be 1.0174x faster
array-splice-contiguous 45.6198+-2.2085 43.8127+-0.8394 might be 1.0412x faster
array-with-double-add 4.3492+-0.1096 4.3045+-0.0606 might be 1.0104x faster
array-with-double-increment 3.4250+-0.0825 3.4003+-0.0290
array-with-double-mul-add 5.4216+-0.2864 5.2970+-0.1427 might be 1.0235x faster
array-with-double-sum 3.4872+-0.0792 3.4849+-0.0622
array-with-int32-add-sub 7.2263+-0.2456 ? 7.3370+-0.2539 ? might be 1.0153x slower
array-with-int32-or-double-sum 3.6368+-0.1252 3.5980+-0.2351 might be 1.0108x faster
ArrayBuffer-DataView-alloc-large-long-lived
33.6624+-0.3875 33.0543+-0.2374 might be 1.0184x faster
ArrayBuffer-DataView-alloc-long-lived 14.3377+-0.3203 14.0626+-0.4097 might be 1.0196x faster
ArrayBuffer-Int32Array-byteOffset 4.0290+-0.0567 ? 4.0678+-0.0788 ?
ArrayBuffer-Int8Array-alloc-large-long-lived
34.7370+-0.6488 34.5241+-0.3996
ArrayBuffer-Int8Array-alloc-long-lived-buffer
23.4542+-0.2930 23.2030+-0.5114 might be 1.0108x faster
ArrayBuffer-Int8Array-alloc-long-lived 13.5059+-0.1414 ^ 13.0240+-0.2091 ^ definitely 1.0370x faster
ArrayBuffer-Int8Array-alloc 11.2415+-0.2754 11.0846+-0.7867 might be 1.0142x faster
asmjs_bool_bug 8.0206+-0.0438 7.9908+-0.1719
assign-custom-setter-polymorphic 3.5152+-0.2711 3.4401+-0.1307 might be 1.0218x faster
assign-custom-setter 4.4233+-0.1679 ! 4.7132+-0.0817 ! definitely 1.0655x slower
basic-set 9.9030+-0.2166 ? 10.0807+-0.5603 ? might be 1.0179x slower
big-int-mul 4.3751+-0.0940 4.3116+-0.1320 might be 1.0147x faster
boolean-test 3.2691+-0.0501 3.2653+-0.0569
branch-fold 4.0764+-0.1755 4.0164+-0.1142 might be 1.0149x faster
by-val-generic 8.5236+-0.7244 8.0345+-0.3946 might be 1.0609x faster
caching-of-property-access-misses 20.2668+-0.4267 20.2538+-0.2373
call-spread-apply 31.7206+-1.0985 31.2189+-0.4828 might be 1.0161x faster
call-spread-call 25.8625+-0.5957 25.6970+-0.7513
captured-assignments 0.5720+-0.0288 0.5339+-0.0403 might be 1.0712x faster
cast-int-to-double 5.7220+-0.0510 5.6318+-0.0743 might be 1.0160x faster
cell-argument 8.6476+-0.2868 8.5615+-0.3369 might be 1.0101x faster
cfg-simplify 3.1169+-0.2141 3.0194+-0.0830 might be 1.0323x faster
chain-getter-access 10.6987+-0.4503 10.5282+-0.3111 might be 1.0162x faster
cmpeq-obj-to-obj-other 12.0027+-0.0747 11.3866+-0.6566 might be 1.0541x faster
constant-test 5.3818+-0.0641 5.3483+-0.0686
DataView-custom-properties 38.6641+-0.7881 38.3707+-0.8791
deconstructing-parameters-overridden-by-function
0.6191+-0.0493 ? 0.6602+-0.0372 ? might be 1.0662x slower
delay-tear-off-arguments-strictmode 13.6933+-0.0566 ? 14.4861+-1.9398 ? might be 1.0579x slower
deltablue-varargs 212.1443+-0.7768 ? 215.3542+-2.6421 ? might be 1.0151x slower
destructuring-arguments 16.6625+-0.2504 ? 17.0474+-0.1955 ? might be 1.0231x slower
destructuring-swap 5.4918+-0.2611 5.4800+-0.1688
direct-arguments-getbyval 1.4390+-0.0569 1.3622+-0.0644 might be 1.0564x faster
div-boolean-double 5.6625+-0.0725 5.6002+-0.0799 might be 1.0111x faster
div-boolean 8.3529+-0.1398 8.3517+-0.1626
double-get-by-val-out-of-bounds 4.6891+-0.1252 4.6675+-0.1680
double-pollution-getbyval 9.3887+-0.2051 ? 9.4282+-0.0992 ?
double-pollution-putbyoffset 4.4229+-0.1320 ? 4.6747+-0.1773 ? might be 1.0569x slower
double-to-int32-typed-array-no-inline 2.5110+-0.0742 ? 2.5178+-0.0884 ?
double-to-int32-typed-array 2.1708+-0.0342 ? 2.1896+-0.0223 ?
double-to-uint32-typed-array-no-inline 2.5878+-0.0990 2.5852+-0.0957
double-to-uint32-typed-array 2.2595+-0.0695 2.2492+-0.1563
elidable-new-object-dag 41.3300+-0.8578 ? 42.0645+-0.7070 ? might be 1.0178x slower
elidable-new-object-roflcopter 45.2447+-0.7553 ? 46.6805+-1.4880 ? might be 1.0317x slower
elidable-new-object-then-call 36.8849+-2.8548 35.2172+-0.9325 might be 1.0474x faster
elidable-new-object-tree 43.4965+-0.6999 ? 43.8753+-0.9380 ?
empty-string-plus-int 5.5972+-0.2293 ? 5.6060+-0.4887 ?
emscripten-cube2hash 40.7499+-1.8371 40.1702+-0.3561 might be 1.0144x faster
exit-length-on-plain-object 14.0113+-0.2186 13.8025+-0.4554 might be 1.0151x faster
external-arguments-getbyval 1.4261+-0.1136 1.4196+-0.1653
external-arguments-putbyval 2.4487+-0.0517 ! 2.6233+-0.0366 ! definitely 1.0713x slower
fixed-typed-array-storage-var-index 1.4809+-0.0256 1.4783+-0.0739
fixed-typed-array-storage 1.1640+-0.0622 1.0690+-0.1006 might be 1.0888x faster
Float32Array-matrix-mult 4.7658+-0.3065 4.6041+-0.0188 might be 1.0351x faster
Float32Array-to-Float64Array-set 53.8843+-0.5783 ? 55.0107+-1.4081 ? might be 1.0209x slower
Float64Array-alloc-long-lived 73.0842+-0.2047 72.5352+-1.1640
Float64Array-to-Int16Array-set 72.1237+-0.9158 72.0578+-0.4884
fold-double-to-int 14.8677+-0.3275 14.6769+-0.3358 might be 1.0130x faster
fold-get-by-id-to-multi-get-by-offset-rare-int
9.0190+-0.7897 8.8010+-0.3178 might be 1.0248x faster
fold-get-by-id-to-multi-get-by-offset 7.6708+-0.3417 7.5024+-0.1541 might be 1.0224x faster
fold-multi-get-by-offset-to-get-by-offset
6.4128+-0.9258 ? 7.0507+-0.9764 ? might be 1.0995x slower
fold-multi-get-by-offset-to-poly-get-by-offset
7.2812+-0.8662 ? 7.9865+-0.1034 ? might be 1.0969x slower
fold-multi-put-by-offset-to-poly-put-by-offset
6.5530+-0.8903 ? 6.7056+-0.7824 ? might be 1.0233x slower
fold-multi-put-by-offset-to-put-by-offset
5.0082+-0.8952 4.9532+-0.7296 might be 1.0111x faster
fold-multi-put-by-offset-to-replace-or-transition-put-by-offset
10.4145+-0.7938 ? 10.8802+-1.1618 ? might be 1.0447x slower
fold-put-by-id-to-multi-put-by-offset 7.2593+-0.4882 7.1056+-0.6513 might be 1.0216x faster
fold-put-structure 4.6037+-0.0838 ? 4.7863+-0.8934 ? might be 1.0397x slower
for-of-iterate-array-entries 4.8066+-0.1128 ? 4.8085+-0.1991 ?
for-of-iterate-array-keys 3.9550+-0.2060 3.8221+-0.1535 might be 1.0348x faster
for-of-iterate-array-values 4.0283+-0.1796 ^ 3.6439+-0.1116 ^ definitely 1.1055x faster
fround 19.9265+-0.5943 ? 20.0439+-0.6636 ?
ftl-library-inlining-dataview 83.0442+-0.9624 ? 85.2243+-8.9668 ? might be 1.0263x slower
ftl-library-inlining 71.4195+-1.3749 ? 75.0284+-19.7030 ? might be 1.0505x slower
function-dot-apply 2.0714+-0.0776 ? 2.2453+-0.2417 ? might be 1.0840x slower
function-test 3.7199+-0.1348 3.6253+-0.2356 might be 1.0261x faster
function-with-eval 94.9014+-3.1869 93.6572+-1.0094 might be 1.0133x faster
gcse-poly-get-less-obvious 21.6149+-1.2322 ^ 18.9980+-0.2784 ^ definitely 1.1377x faster
gcse-poly-get 24.2838+-4.5750 ? 25.5722+-5.6124 ? might be 1.0531x slower
gcse 4.5957+-0.1040 4.5242+-0.1953 might be 1.0158x faster
get-by-id-bimorphic-check-structure-elimination-simple
2.9407+-0.0248 ? 2.9736+-0.1134 ? might be 1.0112x slower
get-by-id-bimorphic-check-structure-elimination
7.0533+-0.0649 ! 7.5961+-0.2276 ! definitely 1.0770x slower
get-by-id-chain-from-try-block 7.1542+-0.2034 7.0644+-0.2444 might be 1.0127x faster
get-by-id-check-structure-elimination 5.5721+-0.1460 ? 5.6691+-0.1680 ? might be 1.0174x slower
get-by-id-proto-or-self 18.0339+-1.6893 ? 18.0582+-0.8109 ?
get-by-id-quadmorphic-check-structure-elimination-simple
3.6032+-0.0725 3.5621+-0.1072 might be 1.0115x faster
get-by-id-self-or-proto 17.9402+-0.3495 ? 18.4219+-1.3352 ? might be 1.0269x slower
get-by-val-out-of-bounds 4.5253+-0.0473 4.4748+-0.0958 might be 1.0113x faster
get_callee_monomorphic 3.4402+-0.1624 ? 3.6058+-0.2314 ? might be 1.0481x slower
get_callee_polymorphic 3.4346+-0.2860 ? 3.7600+-0.3669 ? might be 1.0947x slower
getter-no-activation 4.9061+-0.0476 4.8382+-0.0554 might be 1.0140x faster
getter-richards 106.3368+-2.3793 103.0007+-1.1644 might be 1.0324x faster
getter 5.9396+-0.0833 ? 5.9548+-0.1079 ?
global-var-const-infer-fire-from-opt 1.0635+-0.0991 ? 1.0765+-0.0648 ? might be 1.0122x slower
global-var-const-infer 1.1279+-0.0788 ? 1.1580+-0.1641 ? might be 1.0267x slower
HashMap-put-get-iterate-keys 28.0142+-0.6381 27.8768+-0.4181
HashMap-put-get-iterate 28.2142+-0.3095 28.1274+-0.2841
HashMap-string-put-get-iterate 27.6838+-0.3113 ? 27.9554+-0.9912 ?
hoist-make-rope 12.0707+-1.2891 12.0505+-1.5048
hoist-poly-check-structure-effectful-loop
5.4206+-0.1666 ? 5.5257+-0.2454 ? might be 1.0194x slower
hoist-poly-check-structure 3.9943+-0.0845 3.9142+-0.1104 might be 1.0204x faster
imul-double-only 8.1747+-0.3473 7.9510+-0.3530 might be 1.0281x faster
imul-int-only 9.8508+-0.4407 ? 10.0049+-0.2885 ? might be 1.0156x slower
imul-mixed 7.6109+-0.1565 7.5436+-0.2185
in-four-cases 20.1788+-0.3974 19.9685+-0.1683 might be 1.0105x faster
in-one-case-false 10.8085+-0.1625 ? 10.8806+-0.1624 ?
in-one-case-true 10.8165+-0.1081 ? 10.9340+-0.1164 ? might be 1.0109x slower
in-two-cases 11.1406+-0.3142 11.0443+-0.1523
indexed-properties-in-objects 3.1807+-0.1735 ? 3.1893+-0.1043 ?
infer-closure-const-then-mov-no-inline 4.1402+-0.0370 3.9672+-0.1996 might be 1.0436x faster
infer-closure-const-then-mov 17.7077+-0.8302 17.6288+-0.3209
infer-closure-const-then-put-to-scope-no-inline
12.0037+-0.0973 ? 12.0872+-0.3725 ?
infer-closure-const-then-put-to-scope 23.0732+-0.7907 ? 23.5395+-0.6151 ? might be 1.0202x slower
infer-closure-const-then-reenter-no-inline
50.9787+-0.2928 ? 51.8077+-2.8530 ? might be 1.0163x slower
infer-closure-const-then-reenter 131.9565+-2.1652 130.6250+-2.4607 might be 1.0102x faster
infer-constant-global-property 31.8063+-0.6076 ? 32.9803+-4.4425 ? might be 1.0369x slower
infer-constant-property 2.9073+-0.0744 ? 2.9390+-0.1046 ? might be 1.0109x slower
infer-one-time-closure-ten-vars 12.8087+-0.1805 12.6422+-0.9250 might be 1.0132x faster
infer-one-time-closure-two-vars 11.8967+-0.6442 11.8486+-0.3323
infer-one-time-closure 11.7468+-0.1782 ? 11.9232+-0.2712 ? might be 1.0150x slower
infer-one-time-deep-closure 21.1288+-0.6738 ? 21.2053+-0.0971 ?
inline-arguments-access 4.1879+-0.2007 ? 4.3747+-0.1490 ? might be 1.0446x slower
inline-arguments-aliased-access 4.1913+-0.2689 ? 4.6992+-0.4538 ? might be 1.1212x slower
inline-arguments-local-escape 4.2306+-0.2128 ? 4.3962+-0.2100 ? might be 1.0392x slower
inline-get-scoped-var 4.8300+-0.1073 4.7934+-0.0529
inlined-put-by-id-transition 10.4809+-0.2272 ? 10.6790+-0.9499 ? might be 1.0189x slower
int-or-other-abs-then-get-by-val 5.3652+-0.0479 ? 5.3665+-0.2219 ?
int-or-other-abs-zero-then-get-by-val 17.8698+-0.3472 17.7800+-0.0988
int-or-other-add-then-get-by-val 4.6860+-0.1790 4.5706+-0.0452 might be 1.0253x faster
int-or-other-add 5.7279+-0.0638 ? 5.8004+-0.2287 ? might be 1.0127x slower
int-or-other-div-then-get-by-val 4.6070+-0.0962 4.5435+-0.0688 might be 1.0140x faster
int-or-other-max-then-get-by-val 4.7268+-0.1286 ? 4.8913+-0.3043 ? might be 1.0348x slower
int-or-other-min-then-get-by-val 4.9790+-0.1031 ^ 4.7540+-0.1017 ^ definitely 1.0473x faster
int-or-other-mod-then-get-by-val 4.2628+-0.1031 4.1643+-0.2026 might be 1.0236x faster
int-or-other-mul-then-get-by-val 4.4700+-0.0833 4.3216+-0.0733 might be 1.0343x faster
int-or-other-neg-then-get-by-val 5.0945+-0.2202 4.9592+-0.0382 might be 1.0273x faster
int-or-other-neg-zero-then-get-by-val 18.2416+-0.5592 17.7065+-0.4181 might be 1.0302x faster
int-or-other-sub-then-get-by-val 4.6973+-0.1234 4.6655+-0.0723
int-or-other-sub 3.8598+-0.2715 3.7228+-0.1555 might be 1.0368x faster
int-overflow-local 4.7143+-0.1620 4.6948+-0.1348
Int16Array-alloc-long-lived 49.9990+-0.7955 ? 51.6949+-0.9941 ? might be 1.0339x slower
Int16Array-bubble-sort-with-byteLength 21.3203+-1.1449 21.0838+-0.6582 might be 1.0112x faster
Int16Array-bubble-sort 21.9567+-2.2643 21.1935+-0.8225 might be 1.0360x faster
Int16Array-load-int-mul 1.7230+-0.0440 1.6688+-0.0449 might be 1.0325x faster
Int16Array-to-Int32Array-set 57.0495+-0.5401 ? 57.5585+-1.2246 ?
Int32Array-alloc-large 21.3757+-0.4047 ? 21.4184+-0.8540 ?
Int32Array-alloc-long-lived 56.4711+-0.9052 ? 57.1424+-0.6262 ? might be 1.0119x slower
Int32Array-alloc 2.7802+-0.0929 ! 3.0582+-0.1316 ! definitely 1.1000x slower
Int32Array-Int8Array-view-alloc 6.9559+-0.1041 ? 7.0066+-0.1811 ?
int52-spill 7.0180+-0.1843 6.9558+-0.3789
Int8Array-alloc-long-lived 45.5339+-0.2902 ! 46.6559+-0.4017 ! definitely 1.0246x slower
Int8Array-load-with-byteLength 3.6703+-0.1019 ? 3.7048+-0.2318 ?
Int8Array-load 3.7167+-0.1097 3.6399+-0.2067 might be 1.0211x faster
integer-divide 12.2686+-0.1583 12.2386+-0.2442
integer-modulo 2.5461+-0.1675 2.3604+-0.2080 might be 1.0787x faster
large-int-captured 5.4034+-0.0997 ? 5.6616+-0.2855 ? might be 1.0478x slower
large-int-neg 17.2428+-0.3136 ? 17.2847+-0.4246 ?
large-int 15.8444+-0.0749 ? 16.1617+-0.6098 ? might be 1.0200x slower
logical-not 5.0551+-0.2096 4.9691+-0.1296 might be 1.0173x faster
lots-of-fields 13.3174+-0.3685 ? 13.4628+-0.4353 ? might be 1.0109x slower
make-indexed-storage 3.2976+-0.5759 3.2427+-0.4028 might be 1.0169x faster
make-rope-cse 4.1738+-1.2260 3.9447+-0.1648 might be 1.0581x faster
marsaglia-larger-ints 41.1466+-0.9740 40.8591+-0.8946
marsaglia-osr-entry 23.2627+-0.3849 23.2353+-0.5706
max-boolean 2.6942+-0.1254 2.6912+-0.0833
method-on-number 19.9265+-0.3582 ^ 18.1041+-0.3347 ^ definitely 1.1007x faster
min-boolean 2.7136+-0.1352 ? 2.7311+-0.2204 ?
minus-boolean-double 3.3718+-0.1612 3.3435+-0.0267
minus-boolean 2.4975+-0.0694 2.4837+-0.0653
misc-strict-eq 39.0215+-1.0617 38.7501+-1.0687
mod-boolean-double 11.7204+-0.3007 11.6471+-0.3862
mod-boolean 8.4581+-0.3682 8.4072+-0.2778
mul-boolean-double 3.9737+-0.1784 ? 4.0005+-0.2276 ?
mul-boolean 3.0344+-0.0278 ? 3.0580+-0.0845 ?
neg-boolean 3.3537+-0.1218 ? 3.4313+-0.2416 ? might be 1.0231x slower
negative-zero-divide 0.4390+-0.0298 0.4246+-0.0338 might be 1.0341x faster
negative-zero-modulo 0.4515+-0.0722 0.4447+-0.0265 might be 1.0152x faster
negative-zero-negate 0.4140+-0.0139 0.4110+-0.0262
nested-function-parsing 37.5920+-0.2746 37.1382+-0.3264 might be 1.0122x faster
new-array-buffer-dead 2.9965+-0.0792 ? 3.0215+-0.0751 ?
new-array-buffer-push 6.1622+-0.1607 ? 6.4418+-0.2028 ? might be 1.0454x slower
new-array-dead 12.6097+-1.0899 12.3341+-1.3894 might be 1.0223x faster
new-array-push 4.0259+-0.2995 ? 4.1082+-0.4264 ? might be 1.0204x slower
number-test 3.2542+-0.0544 3.2458+-0.1223
object-closure-call 5.9286+-0.0473 ? 5.9607+-0.0977 ?
object-test 3.3978+-0.2150 ? 3.4005+-0.1291 ?
obvious-sink-pathology-taken 133.4529+-2.9501 129.8032+-2.8443 might be 1.0281x faster
obvious-sink-pathology 126.8414+-1.8889 123.1696+-6.6834 might be 1.0298x faster
obviously-elidable-new-object 34.7593+-1.1735 34.6291+-0.8315
plus-boolean-arith 2.7308+-0.1308 2.6824+-0.0873 might be 1.0180x faster
plus-boolean-double 3.4185+-0.1279 3.4108+-0.2337
plus-boolean 2.5561+-0.0163 2.5293+-0.0259 might be 1.0106x faster
poly-chain-access-different-prototypes-simple
3.4877+-0.0805 3.4683+-0.0954
poly-chain-access-different-prototypes 2.8695+-0.1216 2.8465+-0.0469
poly-chain-access-simpler 3.5807+-0.3283 3.5659+-0.1352
poly-chain-access 2.8284+-0.0721 2.7985+-0.1076 might be 1.0107x faster
poly-stricteq 60.5480+-0.3929 60.3116+-0.2318
polymorphic-array-call 1.7210+-0.2605 ? 1.7466+-0.0459 ? might be 1.0149x slower
polymorphic-get-by-id 3.3597+-0.1357 3.2775+-0.1163 might be 1.0251x faster
polymorphic-put-by-id 30.3734+-2.5643 29.7443+-2.1774 might be 1.0211x faster
polymorphic-structure 15.4373+-0.2169 ? 15.4410+-0.2041 ?
polyvariant-monomorphic-get-by-id 9.4014+-0.1655 9.2325+-0.1654 might be 1.0183x faster
proto-getter-access 10.4927+-0.1389 ? 10.6310+-0.1891 ? might be 1.0132x slower
put-by-id-replace-and-transition 8.7256+-0.1586 ? 9.0667+-0.1995 ? might be 1.0391x slower
put-by-id-slightly-polymorphic 3.1274+-0.0883 3.0538+-0.1237 might be 1.0241x faster
put-by-id 13.5238+-0.2680 13.0048+-0.2646 might be 1.0399x faster
put-by-val-direct 0.7431+-0.0097 ^ 0.5938+-0.0342 ^ definitely 1.2515x faster
put-by-val-large-index-blank-indexing-type
5.6142+-0.1878 ? 5.7003+-0.2342 ? might be 1.0153x slower
put-by-val-machine-int 2.5745+-0.0741 ? 2.7729+-0.1379 ? might be 1.0771x slower
rare-osr-exit-on-local 15.5408+-0.1195 15.4777+-0.1628
register-pressure-from-osr 22.7615+-0.2151 22.6348+-0.6718
setter 5.9764+-0.0596 5.9481+-0.0984
simple-activation-demo 26.9961+-0.3074 ^ 26.0160+-0.1185 ^ definitely 1.0377x faster
simple-getter-access 13.6696+-0.5367 13.5219+-0.1977 might be 1.0109x faster
simple-poly-call-nested 9.1648+-0.2443 9.0678+-0.2524 might be 1.0107x faster
simple-poly-call 1.6288+-0.2101 ? 1.7059+-0.1812 ? might be 1.0473x slower
sin-boolean 19.4198+-0.7811 19.3460+-0.6366
sinkable-new-object-dag 69.6763+-0.9612 ! 72.2692+-0.4288 ! definitely 1.0372x slower
sinkable-new-object-taken 53.9908+-4.5998 ? 54.2162+-5.0917 ?
sinkable-new-object 38.1906+-0.7155 ? 38.5447+-0.9011 ?
slow-array-profile-convergence 3.2375+-0.2065 3.0195+-0.1024 might be 1.0722x faster
slow-convergence 3.6523+-0.0779 3.5319+-0.1522 might be 1.0341x faster
sorting-benchmark 22.6425+-0.5354 22.2411+-0.4376 might be 1.0180x faster
sparse-conditional 1.3690+-0.0870 1.3502+-0.1364 might be 1.0140x faster
splice-to-remove 17.4984+-0.8705 17.0923+-1.2712 might be 1.0238x faster
string-char-code-at 16.7932+-0.0964 16.6844+-0.1554
string-concat-object 2.0745+-0.0937 ? 2.2264+-0.1022 ? might be 1.0732x slower
string-concat-pair-object 2.0403+-0.0356 ! 2.2733+-0.1877 ! definitely 1.1142x slower
string-concat-pair-simple 11.5300+-0.2977 ? 11.7729+-0.2614 ? might be 1.0211x slower
string-concat-simple 11.6546+-0.2020 ! 12.1947+-0.2823 ! definitely 1.0463x slower
string-cons-repeat 7.2703+-0.1621 ? 7.5312+-0.2758 ? might be 1.0359x slower
string-cons-tower 7.2968+-0.0888 ! 7.5643+-0.0372 ! definitely 1.0367x slower
string-equality 18.1639+-0.4136 ? 18.4255+-0.4140 ? might be 1.0144x slower
string-get-by-val-big-char 7.4581+-0.2741 ? 7.5136+-0.3198 ?
string-get-by-val-out-of-bounds-insane 4.3908+-0.3296 3.8765+-0.2553 might be 1.1327x faster
string-get-by-val-out-of-bounds 5.7872+-0.0423 5.7085+-0.1808 might be 1.0138x faster
string-get-by-val 3.6000+-0.2677 3.4519+-0.1085 might be 1.0429x faster
string-hash 2.3055+-0.1121 ? 2.3130+-0.0957 ?
string-long-ident-equality 14.8979+-0.1595 ? 14.9088+-0.2109 ?
string-out-of-bounds 15.2498+-0.3209 15.2038+-0.1816
string-repeat-arith 32.4025+-0.1446 ? 32.6853+-0.3497 ?
string-sub 64.3193+-2.4941 63.9529+-1.1066
string-test 3.1917+-0.1223 3.1837+-0.1180
string-var-equality 31.4825+-0.2783 31.3152+-0.2516
structure-hoist-over-transitions 2.6018+-0.1002 ? 2.6497+-0.0489 ? might be 1.0184x slower
substring-concat-weird 40.2578+-0.8437 ? 40.8912+-0.5790 ? might be 1.0157x slower
substring-concat 41.7631+-0.7722 ? 42.3220+-0.4406 ? might be 1.0134x slower
substring 47.0643+-0.8086 46.8294+-0.5450
switch-char-constant 3.0044+-0.0773 2.9675+-0.0725 might be 1.0124x faster
switch-char 7.1210+-0.0262 7.0292+-0.0712 might be 1.0131x faster
switch-constant 8.4805+-0.5671 ? 8.5723+-0.0803 ? might be 1.0108x slower
switch-string-basic-big-var 15.6741+-0.1579 15.5470+-0.2624
switch-string-basic-big 14.4418+-0.3975 14.3686+-0.3134
switch-string-basic-var 15.1533+-0.4641 15.0434+-0.2871
switch-string-basic 13.7289+-0.2240 13.5805+-0.1759 might be 1.0109x faster
switch-string-big-length-tower-var 20.7231+-0.2961 20.6047+-0.3434
switch-string-length-tower-var 15.5130+-0.2731 15.4240+-0.2845
switch-string-length-tower 13.3013+-0.4077 ? 13.3380+-0.2463 ?
switch-string-short 13.1188+-0.1897 ? 13.3082+-0.4225 ? might be 1.0144x slower
switch 12.4352+-0.4226 ? 12.9710+-0.1405 ? might be 1.0431x slower
tear-off-arguments-simple 3.4771+-0.3934 3.2936+-0.1115 might be 1.0557x faster
tear-off-arguments 4.5708+-0.2663 ? 4.7083+-0.0571 ? might be 1.0301x slower
temporal-structure 12.9910+-0.2481 12.7654+-0.4187 might be 1.0177x faster
tilde-tilde-folding 42.5036+-2.6412 41.7748+-0.8327 might be 1.0174x faster
to-int32-boolean 14.4003+-0.2451 14.3705+-0.4932
try-catch-get-by-val-cloned-arguments 13.9913+-0.6377 13.7917+-0.3377 might be 1.0145x faster
try-catch-get-by-val-direct-arguments 5.9280+-0.5385 5.8954+-0.1450
try-catch-get-by-val-scoped-arguments 6.7288+-0.2134 ? 6.8700+-0.1871 ? might be 1.0210x slower
undefined-property-access 406.0381+-5.5785 404.8080+-1.8144
undefined-test 3.2967+-0.0407 ? 3.3137+-0.1099 ?
unprofiled-licm 22.9076+-0.4121 ? 23.1360+-0.2794 ?
varargs-call 15.7157+-0.5434 ? 15.7200+-0.2393 ?
varargs-construct-inline 21.9393+-0.5694 ? 22.4552+-0.4651 ? might be 1.0235x slower
varargs-construct 33.6310+-0.5160 ? 33.9678+-0.4645 ? might be 1.0100x slower
varargs-inline 9.2563+-0.3387 ? 9.3724+-0.7592 ? might be 1.0125x slower
varargs-strict-mode 10.0715+-0.1949 ? 10.2230+-0.1128 ? might be 1.0150x slower
varargs 9.9409+-0.1656 ? 10.2992+-0.5852 ? might be 1.0360x slower
weird-inlining-const-prop 2.3953+-0.1086 ? 2.4322+-0.0778 ? might be 1.0154x slower
<geometric> 8.8982+-0.0241 8.8882+-0.0243 might be 1.0011x faster
BO AXE
AsmBench:
bigfib.cpp 529.8680+-1.3170 527.3084+-2.5699
cray.c 464.4332+-4.3666 ? 465.7454+-1.8677 ?
dry.c 522.3862+-18.5921 511.2756+-16.3415 might be 1.0217x faster
FloatMM.c 829.5422+-1.6183 ? 830.7151+-10.3146 ?
gcc-loops.cpp 4416.0571+-21.9510 4414.7697+-22.8542
n-body.c 1051.8797+-2.8320 1051.5721+-3.2741
Quicksort.c 472.2245+-5.9797 ? 472.3325+-10.3054 ?
stepanov_container.cpp 3934.6675+-17.2783 ? 3943.5222+-18.1979 ?
Towers.c 281.8233+-4.4983 ? 282.9013+-0.5190 ?
<geometric> 860.7395+-3.4744 859.1751+-4.0191 might be 1.0018x faster
BO AXE
CompressionBench:
huffman 385.8627+-1.3242 383.7420+-2.8097
arithmetic-simple 428.1730+-4.5776 423.6381+-3.5442 might be 1.0107x faster
arithmetic-precise 316.8400+-5.0096 314.5815+-7.9833
arithmetic-complex-precise 313.4549+-1.6838 309.4612+-2.7077 might be 1.0129x faster
arithmetic-precise-order-0 451.9055+-4.7456 447.8956+-6.4474
arithmetic-precise-order-1 344.3370+-3.2021 ? 344.8810+-4.2263 ?
arithmetic-precise-order-2 393.2943+-3.7653 ? 399.0703+-3.1402 ? might be 1.0147x slower
arithmetic-simple-order-1 443.4107+-3.2495 ? 448.4453+-6.0606 ? might be 1.0114x slower
arithmetic-simple-order-2 505.0058+-8.1018 ? 507.8505+-2.5149 ?
lz-string 310.7788+-5.8369 309.5888+-7.1182
<geometric> 384.0859+-0.4046 383.4755+-1.0894 might be 1.0016x faster
BO AXE
Geomean of preferred means:
<scaled-result> 66.8520+-0.0995 66.7673+-0.1557 might be 1.0013x faster
Looks like an Octane regression, no? (In reply to comment #3) > Looks like an Octane regression, no? Oh, you're right. I also realized that I ran the benchmarks with only MarkedBlock changed, and WeakBlock still at 4kB. Rerunning now, will post once ready! Okay, here we go again!
There are indeed some small slowdowns on Octane and LongSpider.
And some speedups on Kraken and CompressionBench.
Nothing scary IMO.
Benchmark report for SunSpider, LongSpider, V8Spider, Octane, Kraken, JSRegress, AsmBench, and CompressionBench on spacecake (MacPro6,1).
VMs tested:
"BO" at /Volumes/Data/Source/Safari/ToT-Clean/WebKitBuild/Release/jsc
"AXE" at /Volumes/Data/Source/Safari/OpenSource/WebKitBuild/Release/jsc
Collected 4 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.
BO AXE
SunSpider:
3d-cube 5.4741+-0.1843 5.3132+-0.0743 might be 1.0303x faster
3d-morph 6.1888+-0.0762 6.0787+-0.1081 might be 1.0181x faster
3d-raytrace 6.7092+-0.1250 6.7036+-0.1978
access-binary-trees 2.3765+-0.0708 ? 2.4100+-0.1203 ? might be 1.0141x slower
access-fannkuch 6.1437+-0.1161 6.1231+-0.0444
access-nbody 3.1929+-0.0228 3.0881+-0.1689 might be 1.0340x faster
access-nsieve 3.8229+-0.2081 3.6578+-0.0668 might be 1.0451x faster
bitops-3bit-bits-in-byte 1.8460+-0.0727 1.8051+-0.0698 might be 1.0227x faster
bitops-bits-in-byte 3.6675+-0.0896 ? 3.7225+-0.2566 ? might be 1.0150x slower
bitops-bitwise-and 2.3305+-0.0495 ? 2.3790+-0.0734 ? might be 1.0208x slower
bitops-nsieve-bits 3.9653+-0.1277 3.9443+-0.1333
controlflow-recursive 2.4592+-0.1438 2.3953+-0.0182 might be 1.0267x faster
crypto-aes 4.6289+-0.3583 4.4562+-0.0850 might be 1.0387x faster
crypto-md5 2.6910+-0.1181 2.6414+-0.0907 might be 1.0188x faster
crypto-sha1 2.8602+-0.0867 2.7927+-0.0703 might be 1.0241x faster
date-format-tofte 10.0085+-0.1423 ? 10.2320+-0.2735 ? might be 1.0223x slower
date-format-xparb 5.7372+-0.0720 5.5038+-0.4760 might be 1.0424x faster
math-cordic 3.3930+-0.0735 3.3528+-0.0804 might be 1.0120x faster
math-partial-sums 5.7034+-0.6629 5.4871+-0.1043 might be 1.0394x faster
math-spectral-norm 2.1898+-0.0173 2.1550+-0.0759 might be 1.0161x faster
regexp-dna 7.3167+-0.0738 ? 7.4305+-0.2971 ? might be 1.0156x slower
string-base64 4.7261+-0.3191 4.6645+-0.1319 might be 1.0132x faster
string-fasta 7.0090+-0.1081 6.8469+-0.1715 might be 1.0237x faster
string-tagcloud 9.9017+-0.1473 9.7538+-0.1465 might be 1.0152x faster
string-unpack-code 21.0257+-0.2818 20.7527+-0.3030 might be 1.0132x faster
string-validate-input 5.0233+-0.1215 ? 5.1132+-0.3381 ? might be 1.0179x slower
<arithmetic> 5.3997+-0.0382 5.3386+-0.0498 might be 1.0114x faster
BO AXE
LongSpider:
3d-cube 896.0269+-7.0199 872.7719+-21.8086 might be 1.0266x faster
3d-morph 1620.6433+-4.5353 ? 1622.4252+-3.7885 ?
3d-raytrace 782.4073+-3.4452 ? 784.0435+-8.7423 ?
access-binary-trees 995.2147+-5.4526 994.9916+-7.1671
access-fannkuch 355.0831+-1.7735 349.1285+-11.1283 might be 1.0171x faster
access-nbody 645.8480+-1.7874 ! 653.6118+-5.9621 ! definitely 1.0120x slower
access-nsieve 827.0486+-5.2656 823.9493+-5.0607
bitops-3bit-bits-in-byte 49.2617+-0.2073 49.2028+-0.6145
bitops-bits-in-byte 98.0665+-1.5095 97.9528+-1.7409
bitops-nsieve-bits 759.9272+-10.7426 ? 767.3227+-40.7363 ?
controlflow-recursive 525.7874+-2.1345 525.4905+-1.0770
crypto-aes 717.9355+-6.5422 716.8865+-5.8339
crypto-md5 596.7657+-8.8157 590.4872+-8.6572 might be 1.0106x faster
crypto-sha1 661.0462+-15.1386 652.5642+-9.0912 might be 1.0130x faster
date-format-tofte 786.9632+-7.2478 ? 818.2549+-33.9533 ? might be 1.0398x slower
date-format-xparb 786.2692+-33.7915 ? 850.1767+-184.0447 ? might be 1.0813x slower
math-cordic 627.1616+-3.4214 626.4023+-2.7529
math-partial-sums 537.3233+-3.0201 536.3049+-7.4863
math-spectral-norm 598.3804+-1.5967 ? 603.2363+-6.2826 ?
string-base64 363.2280+-0.7895 ! 377.0786+-3.9922 ! definitely 1.0381x slower
string-fasta 464.0621+-10.4461 451.4243+-10.1278 might be 1.0280x faster
string-tagcloud 230.7266+-1.9197 227.9215+-1.0017 might be 1.0123x faster
<geometric> 520.1489+-1.7432 ? 521.6337+-5.4703 ? might be 1.0029x slower
BO AXE
V8Spider:
crypto 59.5106+-0.6563 ? 59.5667+-0.6215 ?
deltablue 78.1448+-0.8809 ? 80.1292+-2.7493 ? might be 1.0254x slower
earley-boyer 43.0155+-0.7699 ! 45.7155+-1.1074 ! definitely 1.0628x slower
raytrace 33.9033+-0.6223 ? 34.9352+-1.4111 ? might be 1.0304x slower
regexp 70.2372+-0.5313 ^ 68.3010+-0.6926 ^ definitely 1.0283x faster
richards 84.4021+-1.8905 84.2354+-0.9394
splay 37.7021+-1.9639 ? 37.8451+-1.9036 ?
<geometric> 54.9612+-0.2947 ? 55.6769+-0.7267 ? might be 1.0130x slower
BO AXE
Octane:
encrypt 0.23496+-0.00315 ? 0.23508+-0.00625 ?
decrypt 4.15004+-0.14803 ? 4.20214+-0.13021 ? might be 1.0126x slower
deltablue x2 0.21546+-0.00577 ? 0.21616+-0.00179 ?
earley 0.59828+-0.00259 ? 0.59998+-0.00337 ?
boyer 6.72205+-0.02982 ! 6.82320+-0.05083 ! definitely 1.0150x slower
navier-stokes x2 5.52610+-0.01171 5.51212+-0.01243
raytrace x2 1.27420+-0.03142 1.25666+-0.08951 might be 1.0140x faster
richards x2 0.12254+-0.00276 ? 0.12295+-0.00250 ?
splay x2 0.39381+-0.00476 ? 0.40375+-0.00781 ? might be 1.0252x slower
regexp x2 33.05398+-0.83730 32.76362+-0.63422
pdfjs x2 46.66908+-0.27157 ? 46.82159+-0.44746 ?
mandreel x2 55.98000+-0.15696 ? 56.03301+-0.31625 ?
gbemu x2 41.95008+-0.13824 ! 42.55622+-0.36284 ! definitely 1.0144x slower
closure 0.61055+-0.00158 ? 0.61206+-0.00554 ?
jquery 7.81796+-0.03983 ? 7.86789+-0.02880 ?
box2d x2 13.50487+-0.11417 ? 13.55646+-0.12083 ?
zlib x2 411.75140+-2.74567 403.51801+-27.59831 might be 1.0204x faster
typescript x2 877.98151+-13.49527 874.86615+-22.26265
<geometric> 7.07742+-0.02215 ? 7.08845+-0.04297 ? might be 1.0016x slower
BO AXE
Kraken:
ai-astar 352.328+-1.790 ? 356.414+-7.684 ? might be 1.0116x slower
audio-beat-detection 112.720+-0.820 ? 113.069+-1.824 ?
audio-dft 147.960+-2.977 ? 148.936+-2.579 ?
audio-fft 82.787+-1.097 82.423+-0.627
audio-oscillator 218.589+-4.241 217.844+-2.658
imaging-darkroom 110.396+-1.325 ? 110.974+-2.554 ?
imaging-desaturate 70.104+-4.511 68.739+-0.971 might be 1.0199x faster
imaging-gaussian-blur 116.913+-0.677 ? 117.072+-0.185 ?
json-parse-financial 46.315+-0.331 ? 47.114+-0.818 ? might be 1.0172x slower
json-stringify-tinderbox 59.681+-0.466 ^ 58.284+-0.692 ^ definitely 1.0240x faster
stanford-crypto-aes 66.863+-2.276 ^ 63.300+-1.007 ^ definitely 1.0563x faster
stanford-crypto-ccm 55.919+-8.809 ? 61.783+-8.291 ? might be 1.1049x slower
stanford-crypto-pbkdf2 177.827+-1.129 176.338+-1.580
stanford-crypto-sha256-iterative 57.606+-0.292 ? 57.752+-1.480 ?
<arithmetic> 119.715+-0.560 ? 120.003+-0.616 ? might be 1.0024x slower
BO AXE
JSRegress:
abs-boolean 2.8173+-0.0573 ? 2.8281+-0.0669 ?
adapt-to-double-divide 17.4714+-0.5094 17.3600+-0.1415
aliased-arguments-getbyval 1.3651+-0.0914 ? 1.4418+-0.1547 ? might be 1.0562x slower
allocate-big-object 2.5677+-0.4004 ? 2.8524+-0.0775 ? might be 1.1109x slower
arguments-named-and-reflective 12.0286+-0.1296 12.0107+-0.1173
arguments-out-of-bounds 15.0981+-0.5692 14.9612+-0.1565
arguments-strict-mode 10.9950+-0.1875 10.9343+-0.3664
arguments 9.7319+-0.1412 ? 9.8725+-0.3105 ? might be 1.0144x slower
arity-mismatch-inlining 1.0148+-0.0285 0.9932+-0.0493 might be 1.0218x faster
array-access-polymorphic-structure 6.5537+-0.0889 ? 6.6423+-0.2431 ? might be 1.0135x slower
array-nonarray-polymorhpic-access 36.4812+-0.2766 ? 36.6710+-0.3381 ?
array-prototype-every 90.1464+-1.2017 ? 91.0908+-4.3909 ? might be 1.0105x slower
array-prototype-forEach 87.0969+-0.4316 ? 87.2391+-0.5936 ?
array-prototype-map 97.2327+-0.7501 ? 97.8619+-1.4081 ?
array-prototype-some 90.7228+-0.4443 ? 90.8922+-4.3676 ?
array-splice-contiguous 43.7982+-0.4083 43.0883+-0.7723 might be 1.0165x faster
array-with-double-add 4.3928+-0.1850 4.3317+-0.0467 might be 1.0141x faster
array-with-double-increment 3.4059+-0.1076 3.4016+-0.0921
array-with-double-mul-add 5.3720+-0.0847 5.2660+-0.0742 might be 1.0201x faster
array-with-double-sum 3.4908+-0.0536 3.4796+-0.0272
array-with-int32-add-sub 7.1035+-0.0518 7.0858+-0.0605
array-with-int32-or-double-sum 3.5499+-0.0450 3.5114+-0.0348 might be 1.0110x faster
ArrayBuffer-DataView-alloc-large-long-lived
33.0380+-0.3723 32.7570+-0.2811
ArrayBuffer-DataView-alloc-long-lived 13.9694+-0.3211 ? 14.1235+-1.6816 ? might be 1.0110x slower
ArrayBuffer-Int32Array-byteOffset 4.0685+-0.0388 ? 4.0912+-0.1803 ?
ArrayBuffer-Int8Array-alloc-large-long-lived
33.7691+-0.7439 ? 34.0317+-0.9582 ?
ArrayBuffer-Int8Array-alloc-long-lived-buffer
23.3192+-0.6015 ^ 22.3430+-0.2365 ^ definitely 1.0437x faster
ArrayBuffer-Int8Array-alloc-long-lived 13.1286+-0.1076 12.8132+-0.2612 might be 1.0246x faster
ArrayBuffer-Int8Array-alloc 10.9952+-0.1452 10.8840+-0.3492 might be 1.0102x faster
asmjs_bool_bug 8.0540+-0.0611 7.9628+-0.1138 might be 1.0115x faster
assign-custom-setter-polymorphic 3.2777+-0.0567 ! 3.5045+-0.1001 ! definitely 1.0692x slower
assign-custom-setter 4.4142+-0.1153 ! 4.6940+-0.0890 ! definitely 1.0634x slower
basic-set 9.6655+-0.1652 ? 9.8473+-0.5138 ? might be 1.0188x slower
big-int-mul 4.3309+-0.0928 4.2706+-0.3047 might be 1.0141x faster
boolean-test 3.2960+-0.0656 3.2324+-0.0591 might be 1.0197x faster
branch-fold 4.0480+-0.0855 3.9752+-0.1287 might be 1.0183x faster
by-val-generic 8.2089+-0.0792 8.1165+-0.2743 might be 1.0114x faster
caching-of-property-access-misses 20.1128+-0.1946 19.9376+-0.0978
call-spread-apply 31.7484+-1.2365 31.3485+-0.5705 might be 1.0128x faster
call-spread-call 26.0258+-0.4890 ? 26.3915+-1.5904 ? might be 1.0141x slower
captured-assignments 0.5976+-0.0065 0.5530+-0.0383 might be 1.0807x faster
cast-int-to-double 5.6972+-0.0617 ? 5.7431+-0.1310 ?
cell-argument 8.5130+-0.1696 ? 8.5534+-0.1070 ?
cfg-simplify 3.0301+-0.0964 2.9847+-0.0897 might be 1.0152x faster
chain-getter-access 10.5108+-0.3066 ? 10.5405+-0.2565 ?
cmpeq-obj-to-obj-other 11.9147+-0.2273 11.4772+-0.4127 might be 1.0381x faster
constant-test 5.4118+-0.1335 5.3048+-0.0510 might be 1.0202x faster
DataView-custom-properties 38.3843+-0.8089 38.3523+-0.8347
deconstructing-parameters-overridden-by-function
0.6468+-0.0310 0.6459+-0.0521
delay-tear-off-arguments-strictmode 13.5410+-0.0476 ? 14.0536+-0.5334 ? might be 1.0379x slower
deltablue-varargs 212.1865+-3.1401 211.7460+-3.9058
destructuring-arguments 16.5649+-0.3988 ? 17.1586+-0.4368 ? might be 1.0358x slower
destructuring-swap 5.5198+-0.0656 5.4362+-0.1157 might be 1.0154x faster
direct-arguments-getbyval 1.3742+-0.0989 ? 1.4156+-0.1358 ? might be 1.0301x slower
div-boolean-double 5.7558+-0.1490 ^ 5.5532+-0.0336 ^ definitely 1.0365x faster
div-boolean 8.3286+-0.0472 ? 8.3409+-0.1118 ?
double-get-by-val-out-of-bounds 4.5845+-0.1382 ? 4.6340+-0.1617 ? might be 1.0108x slower
double-pollution-getbyval 9.3340+-0.0431 ? 9.4075+-0.1074 ?
double-pollution-putbyoffset 4.5351+-0.1725 ? 4.6550+-0.1040 ? might be 1.0264x slower
double-to-int32-typed-array-no-inline 2.5447+-0.1881 2.4814+-0.0590 might be 1.0255x faster
double-to-int32-typed-array 2.1715+-0.0396 ? 2.1805+-0.0358 ?
double-to-uint32-typed-array-no-inline 2.5470+-0.1075 2.5423+-0.0418
double-to-uint32-typed-array 2.2297+-0.0792 2.1932+-0.0864 might be 1.0167x faster
elidable-new-object-dag 40.6246+-0.8986 ? 41.7682+-1.4001 ? might be 1.0282x slower
elidable-new-object-roflcopter 44.8602+-0.3141 ? 45.6147+-1.2875 ? might be 1.0168x slower
elidable-new-object-then-call 37.5990+-3.8216 37.2524+-3.1255
elidable-new-object-tree 43.1744+-0.9558 ? 43.9600+-0.7924 ? might be 1.0182x slower
empty-string-plus-int 5.5025+-0.1102 ? 5.5553+-0.0781 ?
emscripten-cube2hash 40.3615+-1.0178 39.6577+-0.3411 might be 1.0177x faster
exit-length-on-plain-object 14.1387+-1.2262 13.8103+-0.0369 might be 1.0238x faster
external-arguments-getbyval 1.3039+-0.1002 ? 1.3472+-0.0736 ? might be 1.0332x slower
external-arguments-putbyval 2.4913+-0.0916 ? 2.5905+-0.1063 ? might be 1.0398x slower
fixed-typed-array-storage-var-index 1.4556+-0.0177 1.4540+-0.0669
fixed-typed-array-storage 1.1185+-0.0818 1.0825+-0.0782 might be 1.0332x faster
Float32Array-matrix-mult 4.7341+-0.1198 4.6537+-0.0626 might be 1.0173x faster
Float32Array-to-Float64Array-set 53.6052+-0.5772 ? 54.0518+-0.6441 ?
Float64Array-alloc-long-lived 72.4789+-1.2328 72.0123+-0.5497
Float64Array-to-Int16Array-set 71.2603+-0.4558 ? 71.4420+-0.4911 ?
fold-double-to-int 14.6328+-0.2249 ? 14.7542+-0.3274 ?
fold-get-by-id-to-multi-get-by-offset-rare-int
9.1535+-0.7095 8.7618+-0.0477 might be 1.0447x faster
fold-get-by-id-to-multi-get-by-offset 7.8105+-0.3088 7.7589+-0.4128
fold-multi-get-by-offset-to-get-by-offset
6.3712+-0.8382 ? 7.0095+-0.9873 ? might be 1.1002x slower
fold-multi-get-by-offset-to-poly-get-by-offset
7.3644+-0.8404 ? 7.6298+-0.4088 ? might be 1.0360x slower
fold-multi-put-by-offset-to-poly-put-by-offset
6.4826+-0.8853 ? 6.9571+-0.1106 ? might be 1.0732x slower
fold-multi-put-by-offset-to-put-by-offset
5.2495+-0.0464 4.5049+-0.7078 might be 1.1653x faster
fold-multi-put-by-offset-to-replace-or-transition-put-by-offset
10.6683+-0.8771 ? 11.2502+-0.3782 ? might be 1.0545x slower
fold-put-by-id-to-multi-put-by-offset 7.1254+-0.0556 ? 7.3133+-0.6726 ? might be 1.0264x slower
fold-put-structure 5.4416+-0.8582 4.8075+-0.8470 might be 1.1319x faster
for-of-iterate-array-entries 4.7729+-0.1068 4.6958+-0.2618 might be 1.0164x faster
for-of-iterate-array-keys 4.0034+-0.2424 3.6757+-0.1141 might be 1.0891x faster
for-of-iterate-array-values 3.8937+-0.1056 ^ 3.6282+-0.1132 ^ definitely 1.0732x faster
fround 20.0186+-0.2731 19.7175+-0.4423 might be 1.0153x faster
ftl-library-inlining-dataview 83.7477+-1.8038 ? 90.6600+-8.9810 ? might be 1.0825x slower
ftl-library-inlining 70.6351+-0.7401 ? 72.1832+-1.1122 ? might be 1.0219x slower
function-dot-apply 2.0648+-0.0382 ? 2.1062+-0.1270 ? might be 1.0200x slower
function-test 3.6403+-0.0460 ^ 3.5338+-0.0430 ^ definitely 1.0302x faster
function-with-eval 93.3427+-2.8596 92.5827+-0.4242
gcse-poly-get-less-obvious 21.6207+-2.5028 19.3956+-1.1805 might be 1.1147x faster
gcse-poly-get 27.1310+-4.4246 ? 28.7548+-1.5098 ? might be 1.0598x slower
gcse 4.5309+-0.0590 4.4883+-0.0270
get-by-id-bimorphic-check-structure-elimination-simple
2.9770+-0.1579 2.9257+-0.0480 might be 1.0175x faster
get-by-id-bimorphic-check-structure-elimination
6.5565+-0.0848 ? 6.5887+-0.1621 ?
get-by-id-chain-from-try-block 7.2294+-0.1946 7.1865+-0.3038
get-by-id-check-structure-elimination 5.3928+-0.2406 5.3906+-0.1726
get-by-id-proto-or-self 17.8199+-0.5784 17.7684+-1.0294
get-by-id-quadmorphic-check-structure-elimination-simple
3.1661+-0.0946 3.1368+-0.0618
get-by-id-self-or-proto 18.3597+-0.9328 18.1061+-0.5259 might be 1.0140x faster
get-by-val-out-of-bounds 4.4990+-0.1120 4.4639+-0.1135
get_callee_monomorphic 3.4688+-0.1498 ? 3.6565+-0.1960 ? might be 1.0541x slower
get_callee_polymorphic 3.3013+-0.0541 ! 3.6284+-0.0504 ! definitely 1.0991x slower
getter-no-activation 4.9109+-0.0306 4.8517+-0.0795 might be 1.0122x faster
getter-richards 102.9878+-1.2372 ? 104.5577+-2.9712 ? might be 1.0152x slower
getter 5.9382+-0.0760 ? 5.9695+-0.0472 ?
global-var-const-infer-fire-from-opt 1.0700+-0.0281 1.0352+-0.0684 might be 1.0336x faster
global-var-const-infer 1.0858+-0.1213 1.0720+-0.0711 might be 1.0128x faster
HashMap-put-get-iterate-keys 27.8839+-0.4135 27.2962+-0.3388 might be 1.0215x faster
HashMap-put-get-iterate 28.6182+-0.7751 27.8047+-0.4335 might be 1.0293x faster
HashMap-string-put-get-iterate 27.6917+-0.2785 27.5404+-0.6841
hoist-make-rope 11.0200+-0.3244 ? 11.2953+-2.3763 ? might be 1.0250x slower
hoist-poly-check-structure-effectful-loop
5.4310+-0.0835 5.4055+-0.1174
hoist-poly-check-structure 3.9868+-0.1181 3.9358+-0.1066 might be 1.0129x faster
imul-double-only 8.0775+-0.2684 7.7969+-0.3092 might be 1.0360x faster
imul-int-only 9.9116+-0.7255 9.8957+-0.4589
imul-mixed 7.6181+-0.1527 ? 7.7523+-0.3401 ? might be 1.0176x slower
in-four-cases 20.1473+-0.4185 20.0157+-0.1960
in-one-case-false 10.7322+-0.1355 ? 10.7465+-0.1403 ?
in-one-case-true 10.7032+-0.0667 ? 10.7517+-0.1030 ?
in-two-cases 11.0273+-0.2946 ? 11.0342+-0.2203 ?
indexed-properties-in-objects 3.0809+-0.0176 ! 3.1275+-0.0180 ! definitely 1.0151x slower
infer-closure-const-then-mov-no-inline 4.1393+-0.0551 4.1042+-0.0589
infer-closure-const-then-mov 17.4025+-0.4067 17.1665+-0.1486 might be 1.0137x faster
infer-closure-const-then-put-to-scope-no-inline
12.0134+-0.0410 11.9376+-0.0910
infer-closure-const-then-put-to-scope 23.4002+-0.6147 23.2842+-0.3016
infer-closure-const-then-reenter-no-inline
50.9871+-0.3729 50.9171+-0.2652
infer-closure-const-then-reenter 129.9097+-3.0451 129.5822+-2.5297
infer-constant-global-property 31.3700+-0.1474 ? 31.4330+-0.0938 ?
infer-constant-property 2.8718+-0.0715 2.8622+-0.0327
infer-one-time-closure-ten-vars 12.2040+-0.1440 12.1487+-0.1743
infer-one-time-closure-two-vars 11.7974+-0.3117 ? 11.8105+-0.1536 ?
infer-one-time-closure 11.7255+-0.2064 11.6390+-0.0938
infer-one-time-deep-closure 20.9298+-0.4066 20.8944+-0.4320
inline-arguments-access 4.0714+-0.1414 ! 4.3562+-0.1397 ! definitely 1.0700x slower
inline-arguments-aliased-access 4.1108+-0.1367 ? 4.3333+-0.0963 ? might be 1.0541x slower
inline-arguments-local-escape 4.1724+-0.2296 ? 4.4558+-0.1404 ? might be 1.0679x slower
inline-get-scoped-var 4.8200+-0.0692 4.8015+-0.1233
inlined-put-by-id-transition 10.4412+-0.3772 ? 10.4562+-0.2974 ?
int-or-other-abs-then-get-by-val 5.3710+-0.1303 5.2990+-0.0324 might be 1.0136x faster
int-or-other-abs-zero-then-get-by-val 17.6646+-0.4933 ? 17.8472+-0.0919 ? might be 1.0103x slower
int-or-other-add-then-get-by-val 4.6703+-0.1531 4.5777+-0.0818 might be 1.0202x faster
int-or-other-add 5.6548+-0.2062 ? 5.6938+-0.0689 ?
int-or-other-div-then-get-by-val 4.6019+-0.1822 ? 4.6411+-0.4329 ?
int-or-other-max-then-get-by-val 4.7576+-0.0875 4.6635+-0.0950 might be 1.0202x faster
int-or-other-min-then-get-by-val 4.7950+-0.0652 ? 4.8280+-0.1499 ?
int-or-other-mod-then-get-by-val 4.2608+-0.0827 4.1786+-0.0442 might be 1.0197x faster
int-or-other-mul-then-get-by-val 4.3338+-0.1009 4.2720+-0.0198 might be 1.0145x faster
int-or-other-neg-then-get-by-val 5.0529+-0.0722 4.9435+-0.0490 might be 1.0221x faster
int-or-other-neg-zero-then-get-by-val 17.7862+-0.0817 ^ 17.4681+-0.1699 ^ definitely 1.0182x faster
int-or-other-sub-then-get-by-val 4.6013+-0.0464 4.5783+-0.0358
int-or-other-sub 3.8552+-0.0807 ? 3.8644+-0.1021 ?
int-overflow-local 4.6963+-0.0826 4.6538+-0.0518
Int16Array-alloc-long-lived 49.5667+-0.9004 ? 50.8939+-0.6484 ? might be 1.0268x slower
Int16Array-bubble-sort-with-byteLength 21.0464+-0.3567 ? 21.2465+-0.4599 ?
Int16Array-bubble-sort 20.8994+-0.6093 ? 21.0225+-0.5020 ?
Int16Array-load-int-mul 1.7283+-0.0543 1.7070+-0.0754 might be 1.0125x faster
Int16Array-to-Int32Array-set 56.3400+-0.2273 ? 56.8839+-0.4636 ?
Int32Array-alloc-large 21.2245+-0.4495 20.9330+-0.6452 might be 1.0139x faster
Int32Array-alloc-long-lived 56.2982+-0.5472 ? 56.5391+-0.3841 ?
Int32Array-alloc 2.7679+-0.0277 ! 2.9839+-0.0461 ! definitely 1.0781x slower
Int32Array-Int8Array-view-alloc 6.9471+-0.0576 ^ 6.6542+-0.1017 ^ definitely 1.0440x faster
int52-spill 6.9432+-0.1910 ^ 6.6920+-0.0271 ^ definitely 1.0375x faster
Int8Array-alloc-long-lived 45.0732+-0.3031 ? 46.0505+-0.7148 ? might be 1.0217x slower
Int8Array-load-with-byteLength 3.5952+-0.0392 3.5914+-0.0318
Int8Array-load 3.6298+-0.0554 3.6076+-0.0177
integer-divide 12.3156+-0.2156 12.2142+-0.2347
integer-modulo 2.4222+-0.0807 2.3640+-0.0327 might be 1.0246x faster
large-int-captured 5.3934+-0.2566 ? 5.5870+-0.0683 ? might be 1.0359x slower
large-int-neg 17.1082+-0.1851 17.1014+-0.1648
large-int 15.7197+-0.5052 15.6060+-0.0373
logical-not 4.9603+-0.1007 ? 4.9645+-0.1957 ?
lots-of-fields 13.1876+-0.3238 13.1483+-0.2779
make-indexed-storage 3.3264+-0.1582 3.2428+-0.2499 might be 1.0258x faster
make-rope-cse 3.6890+-0.0689 ! 3.8664+-0.0328 ! definitely 1.0481x slower
marsaglia-larger-ints 40.8279+-0.7653 ? 40.9427+-1.3616 ?
marsaglia-osr-entry 23.0342+-0.2316 ? 23.3137+-0.6720 ? might be 1.0121x slower
max-boolean 2.6765+-0.0445 2.6585+-0.0449
method-on-number 21.3163+-0.3616 ^ 18.8449+-0.1932 ^ definitely 1.1311x faster
min-boolean 2.7046+-0.0848 2.6908+-0.0428
minus-boolean-double 3.3260+-0.0397 3.3257+-0.0280
minus-boolean 2.5045+-0.0410 2.4632+-0.0141 might be 1.0168x faster
misc-strict-eq 39.7288+-3.6232 38.7145+-0.5035 might be 1.0262x faster
mod-boolean-double 11.4541+-0.0701 11.4156+-0.0885
mod-boolean 8.3013+-0.1268 8.2598+-0.1078
mul-boolean-double 3.9931+-0.1228 ? 4.0118+-0.1327 ?
mul-boolean 3.0181+-0.0192 ? 3.0339+-0.0742 ?
neg-boolean 3.4305+-0.2652 3.3560+-0.0492 might be 1.0222x faster
negative-zero-divide 0.4483+-0.0550 0.4157+-0.0302 might be 1.0784x faster
negative-zero-modulo 0.4443+-0.0483 0.4244+-0.0387 might be 1.0469x faster
negative-zero-negate 0.4110+-0.0128 ? 0.4116+-0.0036 ?
nested-function-parsing 37.3802+-0.6709 37.0632+-0.3451
new-array-buffer-dead 3.0529+-0.1426 3.0362+-0.1501
new-array-buffer-push 6.2137+-0.0580 ? 6.3737+-0.2655 ? might be 1.0257x slower
new-array-dead 13.1484+-0.7919 12.3544+-0.9014 might be 1.0643x faster
new-array-push 4.1795+-0.1827 4.0115+-0.1936 might be 1.0419x faster
number-test 3.2422+-0.0632 3.2064+-0.0857 might be 1.0112x faster
object-closure-call 5.8789+-0.0927 5.8552+-0.0680
object-test 3.3680+-0.0804 ? 3.3744+-0.1084 ?
obvious-sink-pathology-taken 131.4255+-2.9941 129.9743+-1.9509 might be 1.0112x faster
obvious-sink-pathology 126.1149+-2.5608 ^ 119.5573+-0.6438 ^ definitely 1.0548x faster
obviously-elidable-new-object 34.3278+-0.5971 ? 34.5640+-1.0616 ?
plus-boolean-arith 2.6853+-0.1139 ? 2.6875+-0.0941 ?
plus-boolean-double 3.3590+-0.1508 3.3259+-0.0418
plus-boolean 2.6171+-0.2176 2.5742+-0.0524 might be 1.0166x faster
poly-chain-access-different-prototypes-simple
3.5247+-0.1182 3.4850+-0.0941 might be 1.0114x faster
poly-chain-access-different-prototypes 2.8207+-0.0736 ? 2.8214+-0.2006 ?
poly-chain-access-simpler 3.5671+-0.2017 3.4351+-0.0362 might be 1.0384x faster
poly-chain-access 2.8007+-0.0364 2.7781+-0.0485
poly-stricteq 61.2071+-2.7115 59.8720+-0.3829 might be 1.0223x faster
polymorphic-array-call 1.7645+-0.1278 1.5815+-0.1839 might be 1.1157x faster
polymorphic-get-by-id 3.3568+-0.1453 3.2971+-0.0477 might be 1.0181x faster
polymorphic-put-by-id 29.4958+-2.7162 ? 32.8378+-4.0322 ? might be 1.1133x slower
polymorphic-structure 15.4651+-0.2171 15.2858+-0.1136 might be 1.0117x faster
polyvariant-monomorphic-get-by-id 9.2629+-0.1430 9.2562+-0.1110
proto-getter-access 10.4825+-0.1400 10.4133+-0.1742
put-by-id-replace-and-transition 8.6725+-0.1942 ! 9.0162+-0.1228 ! definitely 1.0396x slower
put-by-id-slightly-polymorphic 3.0731+-0.0717 ? 3.0827+-0.0654 ?
put-by-id 13.4495+-0.1352 ^ 12.7334+-0.3053 ^ definitely 1.0562x faster
put-by-val-direct 0.7145+-0.0301 ^ 0.5772+-0.0456 ^ definitely 1.2378x faster
put-by-val-large-index-blank-indexing-type
5.5316+-0.0864 5.4999+-0.1271
put-by-val-machine-int 2.5960+-0.2044 ? 2.7890+-0.0509 ? might be 1.0743x slower
rare-osr-exit-on-local 15.6779+-0.2992 15.4392+-0.3340 might be 1.0155x faster
register-pressure-from-osr 22.4682+-0.0666 ? 22.5316+-0.3910 ?
setter 5.9602+-0.1138 5.9092+-0.0301
simple-activation-demo 26.0262+-0.1523 ? 26.0435+-0.2490 ?
simple-getter-access 13.4822+-0.3565 13.4229+-0.2409
simple-poly-call-nested 9.1272+-0.0285 8.9952+-0.1596 might be 1.0147x faster
simple-poly-call 1.7152+-0.1851 1.6317+-0.1704 might be 1.0512x faster
sin-boolean 19.3862+-0.4430 ? 19.3925+-0.4326 ?
sinkable-new-object-dag 69.7773+-0.8788 ? 70.4230+-1.4410 ?
sinkable-new-object-taken 53.7957+-3.1097 51.6145+-0.6473 might be 1.0423x faster
sinkable-new-object 38.4156+-0.3413 37.7950+-0.6354 might be 1.0164x faster
slow-array-profile-convergence 3.2289+-0.2623 3.0156+-0.0705 might be 1.0707x faster
slow-convergence 3.6110+-0.0889 3.4993+-0.0548 might be 1.0319x faster
sorting-benchmark 22.1880+-0.3078 ? 22.1953+-0.4527 ?
sparse-conditional 1.3318+-0.0408 ? 1.3385+-0.0249 ?
splice-to-remove 16.9997+-0.1259 ? 17.0664+-0.7958 ?
string-char-code-at 16.8760+-0.4718 16.7810+-0.2823
string-concat-object 2.1128+-0.0866 ? 2.2864+-0.1447 ? might be 1.0822x slower
string-concat-pair-object 2.0266+-0.0952 ? 2.1953+-0.1131 ? might be 1.0832x slower
string-concat-pair-simple 11.5058+-0.1730 ? 11.7334+-0.3380 ? might be 1.0198x slower
string-concat-simple 11.5153+-0.2330 ! 11.9041+-0.0805 ! definitely 1.0338x slower
string-cons-repeat 7.1805+-0.1944 ? 7.4359+-0.1953 ? might be 1.0356x slower
string-cons-tower 7.5497+-0.7929 ? 7.5546+-0.1218 ?
string-equality 18.0311+-0.3264 17.9638+-0.2748
string-get-by-val-big-char 7.3152+-0.1498 ? 7.3909+-0.3282 ? might be 1.0103x slower
string-get-by-val-out-of-bounds-insane 4.3008+-0.1739 ^ 3.8478+-0.0324 ^ definitely 1.1177x faster
string-get-by-val-out-of-bounds 5.7568+-0.1405 5.7404+-0.2523
string-get-by-val 3.5293+-0.0539 3.5175+-0.0511
string-hash 2.3013+-0.0384 ? 2.3082+-0.1353 ?
string-long-ident-equality 14.8398+-0.2164 ? 14.8836+-0.1566 ?
string-out-of-bounds 15.0342+-0.2302 ? 15.0417+-0.1176 ?
string-repeat-arith 32.2040+-0.2423 ? 32.8857+-0.5649 ? might be 1.0212x slower
string-sub 63.4370+-1.5336 ? 64.4935+-3.2115 ? might be 1.0167x slower
string-test 3.1982+-0.1091 3.1640+-0.0460 might be 1.0108x faster
string-var-equality 31.5248+-0.8485 31.2067+-0.3851 might be 1.0102x faster
structure-hoist-over-transitions 2.5969+-0.0586 ? 2.7154+-0.1525 ? might be 1.0456x slower
substring-concat-weird 39.5921+-0.5550 ! 40.6042+-0.3287 ! definitely 1.0256x slower
substring-concat 41.2426+-0.4264 ? 41.6371+-0.1542 ?
substring 46.1357+-0.5102 ? 46.8782+-0.2881 ? might be 1.0161x slower
switch-char-constant 2.9758+-0.0623 2.8785+-0.0868 might be 1.0338x faster
switch-char 7.1116+-0.0412 7.0833+-0.0712
switch-constant 8.2692+-0.1318 ? 8.7826+-0.4879 ? might be 1.0621x slower
switch-string-basic-big-var 15.5387+-0.1576 15.5290+-0.1452
switch-string-basic-big 14.4172+-0.2867 14.3512+-0.3527
switch-string-basic-var 14.9298+-0.1300 14.9040+-0.1965
switch-string-basic 13.6147+-0.2834 13.6004+-0.1485
switch-string-big-length-tower-var 20.5145+-0.2413 20.4825+-0.1239
switch-string-length-tower-var 15.2659+-0.0790 ? 15.2892+-0.1709 ?
switch-string-length-tower 13.1251+-0.1435 ? 13.1655+-0.2568 ?
switch-string-short 13.2681+-0.1637 13.1350+-0.1014 might be 1.0101x faster
switch 12.2690+-0.3444 ? 12.7947+-0.2302 ? might be 1.0429x slower
tear-off-arguments-simple 3.2700+-0.1346 ? 3.3992+-0.1609 ? might be 1.0395x slower
tear-off-arguments 4.4701+-0.0690 ! 4.7500+-0.0946 ! definitely 1.0626x slower
temporal-structure 12.7163+-0.1577 ? 13.0585+-0.2993 ? might be 1.0269x slower
tilde-tilde-folding 41.2031+-0.4312 ? 41.4777+-0.5340 ?
to-int32-boolean 14.1924+-0.0289 ? 14.2015+-0.1120 ?
try-catch-get-by-val-cloned-arguments 13.5616+-0.1399 ? 13.6495+-0.1535 ?
try-catch-get-by-val-direct-arguments 5.8331+-0.5825 ? 5.8600+-0.1170 ?
try-catch-get-by-val-scoped-arguments 6.5541+-0.1033 ! 6.9445+-0.1112 ! definitely 1.0596x slower
undefined-property-access 401.6884+-1.0875 ? 402.6544+-2.5050 ?
undefined-test 3.3228+-0.0560 3.3024+-0.0517
unprofiled-licm 22.7434+-0.2922 22.6410+-0.2825
varargs-call 15.5430+-0.1907 ? 15.8254+-0.1857 ? might be 1.0182x slower
varargs-construct-inline 21.7926+-0.2747 ? 22.1353+-0.2330 ? might be 1.0157x slower
varargs-construct 33.3044+-0.5969 ? 33.8323+-0.4801 ? might be 1.0158x slower
varargs-inline 9.0958+-0.1542 ? 9.3664+-0.6676 ? might be 1.0297x slower
varargs-strict-mode 10.0267+-0.1306 ? 10.0939+-0.0978 ?
varargs 9.9739+-0.0617 ? 10.1614+-0.2728 ? might be 1.0188x slower
weird-inlining-const-prop 2.3871+-0.1133 2.3293+-0.1215 might be 1.0248x faster
<geometric> 8.8288+-0.0095 8.8148+-0.0140 might be 1.0016x faster
BO AXE
AsmBench:
bigfib.cpp 525.5313+-3.4816 525.2757+-1.8204
cray.c 457.4965+-7.1149 ? 459.4775+-8.1231 ?
dry.c 525.8731+-0.6478 524.7295+-4.4246
FloatMM.c 821.3733+-3.8185 ? 821.8294+-3.5370 ?
gcc-loops.cpp 4375.7452+-19.6188 ? 4376.5958+-5.9419 ?
n-body.c 1044.6186+-1.8362 ? 1044.6456+-2.9744 ?
Quicksort.c 468.3198+-9.5765 ? 472.4921+-2.3431 ?
stepanov_container.cpp 3911.0515+-32.0606 3896.7554+-21.7627
Towers.c 277.5991+-0.6256 ? 278.0461+-3.3910 ?
<geometric> 853.8917+-2.8127 ? 854.7720+-2.2891 ? might be 1.0010x slower
BO AXE
CompressionBench:
huffman 382.8075+-1.0294 380.3639+-1.8449
arithmetic-simple 421.7098+-2.7001 ^ 415.8672+-2.3143 ^ definitely 1.0140x faster
arithmetic-precise 314.6785+-3.9754 311.9052+-4.9871
arithmetic-complex-precise 311.7849+-5.5451 ? 318.1120+-31.1546 ? might be 1.0203x slower
arithmetic-precise-order-0 447.7043+-11.9623 440.8095+-5.9978 might be 1.0156x faster
arithmetic-precise-order-1 343.5971+-6.3971 340.8659+-1.1309
arithmetic-precise-order-2 393.7087+-4.3357 ? 394.1078+-5.2978 ?
arithmetic-simple-order-1 438.3688+-3.2791 ? 441.2093+-2.9525 ?
arithmetic-simple-order-2 497.8932+-1.2320 ? 501.2341+-4.3816 ?
lz-string 304.1849+-3.2537 300.1889+-2.9688 might be 1.0133x faster
<geometric> 380.5334+-0.7539 379.2880+-3.5821 might be 1.0033x faster
BO AXE
Geomean of preferred means:
<scaled-result> 66.3411+-0.1200 ? 66.3785+-0.2960 ? might be 1.0006x slower
Seems less scary now. Might even be a sunspider win if you increase --inner and --outer a few notches to get more reliable results. (In reply to comment #6) > Seems less scary now. Might even be a sunspider win if you increase --inner > and --outer a few notches to get more reliable results. Since you asked... Benchmark report for SunSpider on spacecake (MacPro6,1). VMs tested: "BO" at /Volumes/Data/Source/Safari/ToT-Clean/WebKitBuild/Release/jsc "AXE" at /Volumes/Data/Source/Safari/OpenSource/WebKitBuild/Release/jsc Collected 160 samples per benchmark/VM, with 10 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. BO AXE 3d-cube 5.2763+-0.0285 ^ 5.1306+-0.0273 ^ definitely 1.0284x faster 3d-morph 5.9127+-0.0252 5.8694+-0.0324 3d-raytrace 7.3090+-0.0284 7.2679+-0.0328 access-binary-trees 2.2066+-0.0176 ^ 2.1675+-0.0169 ^ definitely 1.0180x faster access-fannkuch 6.0130+-0.0214 ? 6.0259+-0.0292 ? access-nbody 3.1241+-0.0138 ^ 3.0725+-0.0122 ^ definitely 1.0168x faster access-nsieve 3.8937+-0.0267 3.8921+-0.0266 bitops-3bit-bits-in-byte 1.8469+-0.0070 ^ 1.8258+-0.0081 ^ definitely 1.0115x faster bitops-bits-in-byte 3.8769+-0.0138 3.8706+-0.0146 bitops-bitwise-and 2.3496+-0.0122 2.3284+-0.0117 bitops-nsieve-bits 3.9282+-0.0175 ^ 3.8871+-0.0181 ^ definitely 1.0106x faster controlflow-recursive 2.3825+-0.0091 2.3659+-0.0101 crypto-aes 4.4422+-0.0241 4.4355+-0.0262 crypto-md5 2.6207+-0.0126 2.5999+-0.0140 crypto-sha1 2.8404+-0.0074 ^ 2.8192+-0.0107 ^ definitely 1.0075x faster date-format-tofte 9.5378+-0.0482 ! 9.7746+-0.0682 ! definitely 1.0248x slower date-format-xparb 5.4190+-0.0472 ? 5.4575+-0.0509 ? math-cordic 3.5473+-0.0133 ^ 3.5121+-0.0150 ^ definitely 1.0100x faster math-partial-sums 5.4820+-0.0272 5.4619+-0.0252 math-spectral-norm 2.2231+-0.0094 ^ 2.1820+-0.0088 ^ definitely 1.0188x faster regexp-dna 7.3213+-0.0339 7.3110+-0.0368 string-base64 4.4160+-0.0273 ^ 4.3614+-0.0270 ^ definitely 1.0125x faster string-fasta 6.8656+-0.0337 ^ 6.7067+-0.0244 ^ definitely 1.0237x faster string-tagcloud 9.7803+-0.0446 9.7045+-0.0386 string-unpack-code 20.6646+-0.0526 ^ 20.4468+-0.0447 ^ definitely 1.0107x faster string-validate-input 4.9630+-0.0242 4.9425+-0.0277 <arithmetic> 5.3170+-0.0088 ^ 5.2854+-0.0082 ^ definitely 1.0060x faster Looks like you were right. :-) Comment on attachment 250874 [details]
Patch
Well I'm sold. r=me
Landed in <https://trac.webkit.org/r182878> This was a 4.4% progression (~18MB) on Membuster on both Mavericks and Yosemite. |