RESOLVED FIXED 143851
Inline JSFunction allocation in FTL
https://bugs.webkit.org/show_bug.cgi?id=143851
Summary Inline JSFunction allocation in FTL
Basile Clement
Reported 2015-04-16 15:43:06 PDT
Patch forthcoming
Attachments
Tentative patch (3.47 KB, patch)
2015-04-16 15:46 PDT, Basile Clement
no flags
Define JSFunction::allocationSize() instead of using sizeof(JSFunction) (4.32 KB, patch)
2015-04-16 16:11 PDT, Basile Clement
no flags
Cleaned up patch (5.13 KB, patch)
2015-04-16 16:54 PDT, Basile Clement
no flags
Basile Clement
Comment 1 2015-04-16 15:46:26 PDT
Created attachment 250959 [details] Tentative patch
Filip Pizlo
Comment 2 2015-04-16 15:58:03 PDT
Comment on attachment 250959 [details] Tentative patch View in context: https://bugs.webkit.org/attachment.cgi?id=250959&action=review Looks good! > Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:2943 > + // We don't need memory barriers since we just fast-created the activation, so the > + // activation must be young. probably don't need this comment, or you can replace "activation" with "function"
Basile Clement
Comment 3 2015-04-16 16:01:31 PDT
(In reply to comment #2) > Comment on attachment 250959 [details] > Tentative patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=250959&action=review > > Looks good! > > > Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:2943 > > + // We don't need memory barriers since we just fast-created the activation, so the > > + // activation must be young. > > probably don't need this comment, or you can replace "activation" with > "function" It was there in the createCompileActivation() inlining, so I supposed it would make sense to have here as well. Good catch on "activation"/"function", fixing that.
Basile Clement
Comment 4 2015-04-16 16:11:12 PDT
Created attachment 250969 [details] Define JSFunction::allocationSize() instead of using sizeof(JSFunction)
Basile Clement
Comment 5 2015-04-16 16:37:59 PDT
Benchmark report for SunSpider, LongSpider, V8Spider, Octane, Kraken, JSRegress, AsmBench, and CompressionBench on Basiles-MacBook-Pro (MacBookPro11,3). VMs tested: "Conf#1" at /Volumes/Data/Baseline/OpenSource/WebKitBuild/Release/jsc (r182899) "Conf#2" at /Volumes/Data/WIP/OpenSource/WebKitBuild/Release/jsc (r182899) Collected 6 samples per benchmark/VM, with 6 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. Conf#1 Conf#2 SunSpider: 3d-cube 4.5990+-0.4221 4.5580+-0.4000 3d-morph 5.3000+-0.2380 ? 5.7707+-0.5599 ? might be 1.0888x slower 3d-raytrace 5.2030+-0.1255 5.1391+-0.1589 might be 1.0124x faster access-binary-trees 2.0130+-0.1379 ? 2.1147+-0.2031 ? might be 1.0505x slower access-fannkuch 5.2538+-0.2003 5.1330+-0.0866 might be 1.0235x faster access-nbody 2.4436+-0.0668 ? 2.5848+-0.1917 ? might be 1.0578x slower access-nsieve 3.0695+-0.0978 3.0288+-0.0482 might be 1.0134x faster bitops-3bit-bits-in-byte 1.4302+-0.0547 ? 1.4372+-0.0600 ? bitops-bits-in-byte 3.1510+-0.0900 ? 3.1742+-0.0953 ? bitops-bitwise-and 1.9744+-0.0459 ? 2.0336+-0.0831 ? might be 1.0300x slower bitops-nsieve-bits 3.3628+-0.2180 3.3339+-0.1496 controlflow-recursive 2.1097+-0.5539 1.9800+-0.1972 might be 1.0655x faster crypto-aes 3.6970+-0.3664 3.6661+-0.3406 crypto-md5 2.1835+-0.1504 ? 2.1943+-0.1653 ? crypto-sha1 2.3311+-0.2203 ? 2.4919+-0.2643 ? might be 1.0690x slower date-format-tofte 7.1383+-0.8088 6.8739+-0.4691 might be 1.0385x faster date-format-xparb 4.5496+-0.4182 ? 4.9247+-0.3355 ? might be 1.0824x slower math-cordic 2.8370+-0.1048 ? 2.9555+-0.2449 ? might be 1.0418x slower math-partial-sums 4.6330+-0.3963 4.4578+-0.0867 might be 1.0393x faster math-spectral-norm 1.9716+-0.2931 1.7439+-0.0396 might be 1.1306x faster regexp-dna 6.2935+-0.2762 ? 6.4294+-0.3350 ? might be 1.0216x slower string-base64 4.4842+-0.4132 4.1725+-0.0447 might be 1.0747x faster string-fasta 5.9849+-0.1679 ? 6.0536+-0.2466 ? might be 1.0115x slower string-tagcloud 9.1351+-0.3214 8.9260+-0.3835 might be 1.0234x faster string-unpack-code 19.3884+-1.0826 ? 19.4414+-0.8618 ? string-validate-input 4.6764+-0.1425 ^ 4.4034+-0.0963 ^ definitely 1.0620x faster <arithmetic> 4.5851+-0.0275 4.5778+-0.0672 might be 1.0016x faster Conf#1 Conf#2 LongSpider: 3d-cube 803.0699+-19.4063 ? 809.0305+-22.9386 ? 3d-morph 1564.8647+-9.0996 ? 1592.0244+-36.2075 ? might be 1.0174x slower 3d-raytrace 683.3388+-7.9320 ? 689.4224+-19.0132 ? access-binary-trees 875.1529+-11.8724 875.0818+-10.3352 access-fannkuch 272.9062+-2.2378 ? 276.8879+-9.3927 ? might be 1.0146x slower access-nbody 570.1220+-7.6976 ? 572.7385+-5.7348 ? access-nsieve 671.2916+-11.8369 663.4910+-11.6132 might be 1.0118x faster bitops-3bit-bits-in-byte 42.5070+-1.2714 ? 42.7292+-0.9330 ? bitops-bits-in-byte 90.3566+-5.8304 ? 92.7364+-10.6011 ? might be 1.0263x slower bitops-nsieve-bits 702.1930+-15.8141 701.4176+-27.2682 controlflow-recursive 477.7046+-9.0323 469.2044+-4.1564 might be 1.0181x faster crypto-aes 579.1833+-13.0341 578.3113+-9.3444 crypto-md5 549.2771+-7.2576 ? 549.8418+-12.2125 ? crypto-sha1 589.8635+-5.6536 ? 598.7798+-19.0848 ? might be 1.0151x slower date-format-tofte 526.1929+-8.1329 ? 532.0518+-11.3256 ? might be 1.0111x slower date-format-xparb 681.3737+-32.6099 650.3320+-6.2473 might be 1.0477x faster math-cordic 520.5151+-2.9877 ? 523.9935+-4.3744 ? math-partial-sums 441.5575+-17.0293 440.5492+-8.6003 math-spectral-norm 585.5274+-13.4977 574.2784+-3.4286 might be 1.0196x faster string-base64 334.0148+-3.9755 ? 336.6573+-9.9106 ? string-fasta 385.5599+-4.3994 ? 392.4106+-17.3611 ? might be 1.0178x slower string-tagcloud 205.2707+-4.4528 ? 207.0415+-3.9943 ? <geometric> 450.5265+-2.6040 ? 451.4909+-2.5574 ? might be 1.0021x slower Conf#1 Conf#2 V8Spider: crypto 54.0365+-1.3280 52.2855+-3.1355 might be 1.0335x faster deltablue 83.9845+-5.3576 ? 88.6670+-8.8956 ? might be 1.0558x slower earley-boyer 43.1970+-2.9738 40.6932+-1.0516 might be 1.0615x faster raytrace 33.5772+-1.7996 32.2699+-1.9154 might be 1.0405x faster regexp 59.2108+-2.3339 ? 61.2446+-2.4999 ? might be 1.0343x slower richards 73.3956+-2.4970 72.6655+-2.8048 might be 1.0100x faster splay 35.4069+-1.8101 ? 38.1630+-2.1307 ? might be 1.0778x slower <geometric> 51.8508+-1.2358 ? 51.9804+-0.7505 ? might be 1.0025x slower Conf#1 Conf#2 Octane: encrypt 0.20654+-0.00216 0.20399+-0.00331 might be 1.0125x faster decrypt 3.68884+-0.13734 3.63728+-0.11008 might be 1.0142x faster deltablue x2 0.16711+-0.00213 ? 0.16839+-0.00228 ? earley 0.48790+-0.00581 ^ 0.45680+-0.00475 ^ definitely 1.0681x faster boyer 5.94139+-0.14081 ? 5.96870+-0.22438 ? navier-stokes x2 5.29282+-0.07064 5.28472+-0.05824 raytrace x2 1.01948+-0.01012 ? 1.08758+-0.07561 ? might be 1.0668x slower richards x2 0.09749+-0.00287 ? 0.09881+-0.00126 ? might be 1.0136x slower splay x2 0.36818+-0.00904 ? 0.36949+-0.00561 ? regexp x2 29.75310+-0.29887 ? 33.22591+-9.28795 ? might be 1.1167x slower pdfjs x2 40.68228+-0.48934 40.56041+-0.44654 mandreel x2 47.57093+-0.91062 ? 47.79446+-0.59973 ? gbemu x2 32.51786+-0.42407 ? 34.14483+-2.56798 ? might be 1.0500x slower closure 0.51076+-0.00803 ? 0.51717+-0.01498 ? might be 1.0125x slower jquery 6.33312+-0.10046 ? 6.36897+-0.07959 ? box2d x2 10.76840+-0.20003 10.72413+-0.10087 zlib x2 364.63312+-21.52860 ? 370.22668+-16.85547 ? might be 1.0153x slower typescript x2 677.01628+-10.09086 671.84550+-16.64095 <geometric> 5.96377+-0.03872 ? 6.04088+-0.11905 ? might be 1.0129x slower Conf#1 Conf#2 Kraken: ai-astar 286.006+-6.358 ? 289.807+-14.165 ? might be 1.0133x slower audio-beat-detection 103.218+-1.358 ? 103.284+-2.454 ? audio-dft 171.470+-6.639 168.479+-5.258 might be 1.0178x faster audio-fft 82.698+-3.331 81.769+-1.331 might be 1.0114x faster audio-oscillator 189.286+-4.257 187.925+-3.023 imaging-darkroom 99.996+-1.531 ^ 96.974+-1.263 ^ definitely 1.0312x faster imaging-desaturate 59.568+-2.109 ? 60.793+-3.393 ? might be 1.0206x slower imaging-gaussian-blur 91.527+-2.680 91.223+-2.118 json-parse-financial 40.964+-2.532 38.903+-1.628 might be 1.0530x faster json-stringify-tinderbox 53.079+-3.025 ? 53.270+-2.721 ? stanford-crypto-aes 59.757+-1.597 59.332+-3.018 stanford-crypto-ccm 47.465+-4.762 ? 52.497+-4.608 ? might be 1.1060x slower stanford-crypto-pbkdf2 152.617+-0.850 ? 154.951+-2.227 ? might be 1.0153x slower stanford-crypto-sha256-iterative 50.950+-1.876 ? 52.015+-4.015 ? might be 1.0209x slower <arithmetic> 106.329+-1.144 ? 106.516+-0.966 ? might be 1.0018x slower Conf#1 Conf#2 JSRegress: abs-boolean 2.7480+-0.4438 2.3927+-0.0552 might be 1.1485x faster adapt-to-double-divide 16.8929+-0.7533 ? 17.2890+-0.8639 ? might be 1.0234x slower aliased-arguments-getbyval 1.2045+-0.0916 1.1359+-0.0327 might be 1.0604x faster allocate-big-object 2.7470+-0.3407 2.5776+-0.2086 might be 1.0657x faster arguments-named-and-reflective 11.7227+-0.6724 11.2056+-0.5321 might be 1.0461x faster arguments-out-of-bounds 10.6211+-0.1652 ? 10.9550+-0.8114 ? might be 1.0314x slower arguments-strict-mode 10.5998+-1.0592 10.3425+-0.3434 might be 1.0249x faster arguments 9.2973+-0.4011 ? 9.5707+-1.0173 ? might be 1.0294x slower arity-mismatch-inlining 0.8181+-0.0546 ? 0.8242+-0.0283 ? array-access-polymorphic-structure 6.2909+-0.5219 6.2135+-0.1936 might be 1.0125x faster array-nonarray-polymorhpic-access 29.8688+-1.1692 28.6213+-0.7186 might be 1.0436x faster array-prototype-every 84.4322+-4.7173 ? 84.6002+-4.4236 ? array-prototype-forEach 79.9800+-2.3311 ? 82.1193+-2.8389 ? might be 1.0267x slower array-prototype-map 89.8567+-3.8944 ? 91.7608+-3.6254 ? might be 1.0212x slower array-prototype-some 82.8041+-1.3283 ? 84.0225+-1.6694 ? might be 1.0147x slower array-splice-contiguous 43.7137+-2.7928 ^ 39.2650+-1.4598 ^ definitely 1.1133x faster array-with-double-add 3.3536+-0.0490 ? 3.4866+-0.2506 ? might be 1.0397x slower array-with-double-increment 3.0107+-0.0857 ? 3.0753+-0.1019 ? might be 1.0215x slower array-with-double-mul-add 4.2085+-0.1196 ? 4.3105+-0.2434 ? might be 1.0242x slower array-with-double-sum 3.1305+-0.0575 ? 3.2215+-0.0668 ? might be 1.0291x slower array-with-int32-add-sub 5.9574+-0.2820 5.8525+-0.1278 might be 1.0179x faster array-with-int32-or-double-sum 3.2518+-0.1384 ? 3.3018+-0.1600 ? might be 1.0154x slower ArrayBuffer-DataView-alloc-large-long-lived 29.9264+-3.4862 29.1947+-2.5537 might be 1.0251x faster ArrayBuffer-DataView-alloc-long-lived 12.4987+-0.4142 ? 13.1595+-0.8660 ? might be 1.0529x slower ArrayBuffer-Int32Array-byteOffset 3.8010+-0.4661 3.6384+-0.0812 might be 1.0447x faster ArrayBuffer-Int8Array-alloc-large-long-lived 29.2546+-2.1755 ? 29.9987+-1.6036 ? might be 1.0254x slower ArrayBuffer-Int8Array-alloc-long-lived-buffer 21.5986+-1.2087 ? 22.6066+-1.4367 ? might be 1.0467x slower ArrayBuffer-Int8Array-alloc-long-lived 12.2603+-0.9141 ? 12.6168+-0.9715 ? might be 1.0291x slower ArrayBuffer-Int8Array-alloc 10.5776+-0.7337 ? 10.5972+-0.8041 ? asmjs_bool_bug 6.7557+-0.2707 ? 6.9858+-0.3773 ? might be 1.0340x slower assign-custom-setter-polymorphic 2.5253+-0.1049 ! 2.8373+-0.2027 ! definitely 1.1235x slower assign-custom-setter 3.5640+-0.2274 3.5006+-0.1931 might be 1.0181x faster basic-set 8.4462+-0.3159 ^ 7.5940+-0.2815 ^ definitely 1.1122x faster big-int-mul 3.5740+-0.1947 ? 3.5913+-0.2012 ? boolean-test 2.8243+-0.1023 2.7772+-0.0515 might be 1.0169x faster branch-fold 3.4902+-0.0507 ? 3.5294+-0.0732 ? might be 1.0113x slower by-val-generic 7.3203+-0.2307 ? 7.8826+-0.9629 ? might be 1.0768x slower call-spread-apply 28.2916+-1.0146 ? 28.4963+-1.5479 ? call-spread-call 21.9257+-0.6111 ? 23.0448+-0.9835 ? might be 1.0510x slower captured-assignments 0.3754+-0.0294 ? 0.4396+-0.1660 ? might be 1.1712x slower cast-int-to-double 4.9582+-0.2255 4.9142+-0.4035 cell-argument 6.5584+-0.3514 6.4486+-0.3642 might be 1.0170x faster cfg-simplify 2.8680+-0.0554 ? 2.9181+-0.0690 ? might be 1.0175x slower chain-getter-access 9.2376+-0.1841 ? 9.3055+-0.1645 ? cmpeq-obj-to-obj-other 10.3249+-1.1233 ? 11.4552+-0.9144 ? might be 1.1095x slower constant-test 4.5785+-0.0876 ? 4.6676+-0.1524 ? might be 1.0195x slower create-lots-of-functions 18.9207+-0.9808 18.8655+-0.8375 DataView-custom-properties 34.2514+-1.9517 33.9054+-2.2844 might be 1.0102x faster deconstructing-parameters-overridden-by-function 0.4200+-0.0255 0.4172+-0.0206 delay-tear-off-arguments-strictmode 13.0027+-1.0279 12.7358+-0.6904 might be 1.0210x faster deltablue-varargs 149.0005+-3.6472 ? 150.4966+-3.5405 ? might be 1.0100x slower destructuring-arguments 13.7839+-0.5444 ? 14.1349+-1.0686 ? might be 1.0255x slower destructuring-swap 4.7524+-0.0771 4.7107+-0.1501 direct-arguments-getbyval 1.1806+-0.0862 ? 1.2484+-0.1862 ? might be 1.0574x slower div-boolean-double 5.4690+-0.1892 5.3942+-0.1219 might be 1.0139x faster div-boolean 8.3518+-0.2142 ? 8.4397+-0.2047 ? might be 1.0105x slower double-get-by-val-out-of-bounds 4.2427+-0.2607 ? 4.3839+-0.2920 ? might be 1.0333x slower double-pollution-getbyval 9.0117+-0.2586 ? 9.4095+-0.4854 ? might be 1.0442x slower double-pollution-putbyoffset 4.2609+-0.3763 4.0723+-0.3965 might be 1.0463x faster double-to-int32-typed-array-no-inline 2.0020+-0.1148 ? 2.0867+-0.1236 ? might be 1.0423x slower double-to-int32-typed-array 1.6825+-0.0906 ? 1.8558+-0.2524 ? might be 1.1030x slower double-to-uint32-typed-array-no-inline 2.0839+-0.0905 2.0732+-0.0478 double-to-uint32-typed-array 1.7563+-0.0410 ? 1.8911+-0.1388 ? might be 1.0768x slower elidable-new-object-dag 36.4322+-1.9877 ? 38.4146+-2.2599 ? might be 1.0544x slower elidable-new-object-roflcopter 39.5800+-3.2988 ? 40.3142+-1.5844 ? might be 1.0185x slower elidable-new-object-then-call 32.8670+-0.7956 ? 33.7900+-2.4622 ? might be 1.0281x slower elidable-new-object-tree 40.0287+-2.1967 ? 40.1307+-2.5954 ? empty-string-plus-int 5.0966+-0.4203 4.8264+-0.0872 might be 1.0560x faster emscripten-cube2hash 27.4349+-1.6436 ? 28.9473+-1.3847 ? might be 1.0551x slower exit-length-on-plain-object 13.2412+-0.5283 ? 13.6662+-0.6771 ? might be 1.0321x slower external-arguments-getbyval 1.3882+-0.2539 1.1597+-0.0745 might be 1.1971x faster external-arguments-putbyval 2.2380+-0.4385 2.1066+-0.1197 might be 1.0624x faster fixed-typed-array-storage-var-index 1.1728+-0.0480 ? 1.2301+-0.2000 ? might be 1.0489x slower fixed-typed-array-storage 0.8059+-0.0618 0.7869+-0.0246 might be 1.0241x faster Float32Array-matrix-mult 3.8065+-0.0985 ? 4.0284+-0.1859 ? might be 1.0583x slower Float32Array-to-Float64Array-set 50.2299+-1.2094 ? 50.4268+-2.3526 ? Float64Array-alloc-long-lived 66.2428+-4.1969 ? 69.7954+-3.8949 ? might be 1.0536x slower Float64Array-to-Int16Array-set 59.1003+-2.1973 ? 63.7486+-4.1921 ? might be 1.0786x slower fold-double-to-int 13.1240+-1.1017 12.9946+-0.4298 fold-get-by-id-to-multi-get-by-offset-rare-int 9.5769+-0.4531 9.5712+-0.5621 fold-get-by-id-to-multi-get-by-offset 7.6045+-0.2872 7.5236+-0.3723 might be 1.0107x faster fold-multi-get-by-offset-to-get-by-offset 7.8856+-0.4022 7.4326+-1.4994 might be 1.0609x faster fold-multi-get-by-offset-to-poly-get-by-offset 7.1477+-1.2727 ? 7.2024+-0.8092 ? fold-multi-put-by-offset-to-poly-put-by-offset 6.8101+-0.5595 6.7418+-1.0311 might be 1.0101x faster fold-multi-put-by-offset-to-put-by-offset 4.2776+-1.0053 ? 4.4882+-0.3999 ? might be 1.0492x slower fold-multi-put-by-offset-to-replace-or-transition-put-by-offset 9.0651+-0.9331 8.5602+-0.5205 might be 1.0590x faster fold-put-by-id-to-multi-put-by-offset 8.6409+-0.8774 8.2080+-0.5519 might be 1.0527x faster fold-put-structure 4.2302+-0.5890 3.8970+-0.3751 might be 1.0855x faster for-of-iterate-array-entries 4.1351+-0.1937 ? 4.1656+-0.2959 ? for-of-iterate-array-keys 3.4547+-0.1565 ? 3.6283+-0.4799 ? might be 1.0503x slower for-of-iterate-array-values 3.3615+-0.2701 ? 3.4164+-0.2363 ? might be 1.0163x slower fround 18.7360+-0.6884 18.0425+-0.2313 might be 1.0384x faster ftl-library-inlining-dataview 59.7107+-1.0284 ? 60.6379+-1.6045 ? might be 1.0155x slower ftl-library-inlining 113.0357+-1.0805 ? 113.3408+-3.9464 ? function-dot-apply 2.0549+-0.1545 ? 2.1304+-0.1704 ? might be 1.0368x slower function-test 2.9247+-0.1028 ? 3.0096+-0.2812 ? might be 1.0290x slower function-with-eval 98.3656+-3.2450 95.4508+-4.3330 might be 1.0305x faster gcse-poly-get-less-obvious 14.6366+-0.3455 ? 14.9663+-0.5736 ? might be 1.0225x slower gcse-poly-get 16.5342+-0.4340 16.4926+-0.5500 gcse 3.8509+-0.0942 ? 4.0758+-0.3135 ? might be 1.0584x slower get-by-id-bimorphic-check-structure-elimination-simple 2.6150+-0.0713 ? 2.9797+-0.4114 ? might be 1.1395x slower get-by-id-bimorphic-check-structure-elimination 5.7497+-0.1264 ? 5.8299+-0.1380 ? might be 1.0139x slower get-by-id-chain-from-try-block 6.7911+-0.4547 6.7316+-0.5497 get-by-id-check-structure-elimination 4.5090+-0.2174 4.4187+-0.1527 might be 1.0204x faster get-by-id-proto-or-self 14.6354+-0.8275 ? 14.9453+-0.5930 ? might be 1.0212x slower get-by-id-quadmorphic-check-structure-elimination-simple 2.8881+-0.0596 ? 2.9364+-0.0563 ? might be 1.0167x slower get-by-id-self-or-proto 15.6650+-1.5602 14.5909+-0.3865 might be 1.0736x faster get-by-val-out-of-bounds 4.1775+-0.2754 3.9650+-0.1570 might be 1.0536x faster get_callee_monomorphic 3.2670+-0.5239 3.2102+-0.1951 might be 1.0177x faster get_callee_polymorphic 3.3111+-0.2381 ? 3.7052+-0.6147 ? might be 1.1190x slower getter-no-activation 4.8610+-0.1775 4.7294+-0.0508 might be 1.0278x faster getter-richards 119.8239+-10.7413 113.8175+-7.1069 might be 1.0528x faster getter 5.5036+-0.4508 5.4344+-0.4854 might be 1.0127x faster global-var-const-infer-fire-from-opt 0.8310+-0.0785 ? 0.9010+-0.1613 ? might be 1.0843x slower global-var-const-infer 0.8368+-0.0923 ? 0.8814+-0.2145 ? might be 1.0533x slower HashMap-put-get-iterate-keys 24.5553+-0.7970 24.2126+-0.7866 might be 1.0142x faster HashMap-put-get-iterate 24.5605+-1.1128 24.5103+-0.6654 HashMap-string-put-get-iterate 24.7011+-0.5622 ? 26.0255+-1.1568 ? might be 1.0536x slower hoist-make-rope 8.6155+-0.9475 ? 8.9034+-1.1139 ? might be 1.0334x slower hoist-poly-check-structure-effectful-loop 4.4753+-0.5385 ? 4.4849+-0.3313 ? hoist-poly-check-structure 3.1894+-0.0537 ? 3.2617+-0.0828 ? might be 1.0227x slower imul-double-only 6.7939+-0.4081 ? 7.2358+-0.8276 ? might be 1.0651x slower imul-int-only 8.9048+-0.8455 8.1757+-0.2743 might be 1.0892x faster imul-mixed 6.6031+-0.4097 ? 6.8957+-0.5789 ? might be 1.0443x slower in-four-cases 16.2204+-1.2562 16.1936+-0.9405 in-one-case-false 8.7146+-0.6285 8.7010+-0.3543 in-one-case-true 8.5498+-0.3815 ? 9.0774+-0.7581 ? might be 1.0617x slower in-two-cases 8.8425+-0.6496 8.8256+-0.3619 indexed-properties-in-objects 2.9958+-0.3019 2.7664+-0.0527 might be 1.0829x faster infer-closure-const-then-mov-no-inline 3.2489+-0.1349 3.2427+-0.0922 infer-closure-const-then-mov 17.5238+-0.4144 ? 17.8732+-0.4842 ? might be 1.0199x slower infer-closure-const-then-put-to-scope-no-inline 12.1395+-0.5615 11.8581+-0.1924 might be 1.0237x faster infer-closure-const-then-put-to-scope 24.1640+-0.7216 23.9893+-0.4584 infer-closure-const-then-reenter-no-inline 53.4968+-1.1598 ? 53.5332+-1.5640 ? infer-closure-const-then-reenter 24.0221+-0.6190 23.9969+-0.2753 infer-constant-global-property 31.8931+-2.0093 31.1590+-1.2222 might be 1.0236x faster infer-constant-property 2.5698+-0.0772 ? 2.6031+-0.0709 ? might be 1.0130x slower infer-one-time-closure-ten-vars 9.0645+-0.8550 8.7854+-0.3409 might be 1.0318x faster infer-one-time-closure-two-vars 8.2507+-0.5361 ? 8.4159+-0.2874 ? might be 1.0200x slower infer-one-time-closure 8.1318+-0.2054 ? 8.2144+-0.4658 ? might be 1.0102x slower infer-one-time-deep-closure 13.2590+-0.7924 12.8795+-0.2290 might be 1.0295x faster inline-arguments-access 4.0005+-0.2881 ? 4.1435+-0.2783 ? might be 1.0358x slower inline-arguments-aliased-access 4.0032+-0.2799 ? 4.1799+-0.4470 ? might be 1.0441x slower inline-arguments-local-escape 4.5880+-0.4949 4.2919+-0.2669 might be 1.0690x faster inline-get-scoped-var 4.6175+-0.1888 ? 4.7461+-0.2735 ? might be 1.0279x slower inlined-put-by-id-transition 10.1607+-1.0217 ? 10.4530+-0.8905 ? might be 1.0288x slower int-or-other-abs-then-get-by-val 4.7682+-0.0458 ? 5.1167+-0.6116 ? might be 1.0731x slower int-or-other-abs-zero-then-get-by-val 16.5144+-0.8045 16.4062+-0.6289 int-or-other-add-then-get-by-val 4.0459+-0.0954 ? 4.1252+-0.1824 ? might be 1.0196x slower int-or-other-add 4.8770+-0.0916 ? 4.9255+-0.0949 ? int-or-other-div-then-get-by-val 3.7848+-0.1406 ? 3.9276+-0.2441 ? might be 1.0377x slower int-or-other-max-then-get-by-val 4.1429+-0.1432 4.0680+-0.1470 might be 1.0184x faster int-or-other-min-then-get-by-val 4.2741+-0.2279 4.1191+-0.1098 might be 1.0376x faster int-or-other-mod-then-get-by-val 3.4909+-0.0859 ? 3.5928+-0.3685 ? might be 1.0292x slower int-or-other-mul-then-get-by-val 3.7795+-0.2048 3.6820+-0.1162 might be 1.0265x faster int-or-other-neg-then-get-by-val 4.3761+-0.1499 4.3751+-0.1939 int-or-other-neg-zero-then-get-by-val 16.8457+-0.5792 16.4021+-0.3421 might be 1.0270x faster int-or-other-sub-then-get-by-val 4.0293+-0.1119 ? 4.4473+-0.8107 ? might be 1.1037x slower int-or-other-sub 3.4258+-0.2533 ? 3.6146+-0.5609 ? might be 1.0551x slower int-overflow-local 4.3879+-0.2968 4.0895+-0.1212 might be 1.0730x faster Int16Array-alloc-long-lived 47.3970+-2.7082 46.4593+-2.3605 might be 1.0202x faster Int16Array-bubble-sort-with-byteLength 18.2376+-0.5570 17.4799+-0.2591 might be 1.0433x faster Int16Array-bubble-sort 17.5588+-0.3331 17.4849+-0.3113 Int16Array-load-int-mul 1.4047+-0.0593 ? 1.4112+-0.0864 ? Int16Array-to-Int32Array-set 47.2113+-2.4555 46.2984+-1.2754 might be 1.0197x faster Int32Array-alloc-large 13.4160+-1.5318 12.5693+-0.5207 might be 1.0674x faster Int32Array-alloc-long-lived 56.0865+-5.7028 51.5915+-2.8652 might be 1.0871x faster Int32Array-alloc 3.2741+-0.6467 2.9731+-0.4771 might be 1.1012x faster Int32Array-Int8Array-view-alloc 6.2072+-0.2253 ? 6.2992+-0.0947 ? might be 1.0148x slower int52-spill 6.1930+-0.5481 6.0498+-0.2707 might be 1.0237x faster Int8Array-alloc-long-lived 42.6370+-1.5805 ? 43.6062+-2.3511 ? might be 1.0227x slower Int8Array-load-with-byteLength 3.6861+-0.3571 3.5717+-0.3485 might be 1.0320x faster Int8Array-load 3.5367+-0.5029 3.3553+-0.0803 might be 1.0541x faster integer-divide 10.8437+-0.3235 ? 10.9915+-0.3429 ? might be 1.0136x slower integer-modulo 1.6750+-0.0881 ? 1.6802+-0.0710 ? large-int-captured 5.0495+-0.3427 ? 5.1034+-0.2086 ? might be 1.0107x slower large-int-neg 15.2710+-1.0538 15.1453+-0.8531 large-int 14.2634+-0.3110 ? 14.7625+-0.7109 ? might be 1.0350x slower logical-not 4.2077+-0.0679 ? 4.3075+-0.2118 ? might be 1.0237x slower lots-of-fields 10.5186+-0.8063 ? 10.8567+-0.7571 ? might be 1.0321x slower make-indexed-storage 2.9126+-0.1316 ? 3.1215+-0.1897 ? might be 1.0717x slower make-rope-cse 3.9254+-0.4837 3.8067+-0.1298 might be 1.0312x faster marsaglia-larger-ints 35.3390+-3.0543 33.6873+-0.6071 might be 1.0490x faster marsaglia-osr-entry 21.2856+-0.6825 ? 22.5553+-1.7285 ? might be 1.0596x slower max-boolean 2.6908+-0.0776 2.6394+-0.0624 might be 1.0195x faster method-on-number 16.5206+-1.4855 16.1541+-0.6653 might be 1.0227x faster min-boolean 2.6788+-0.0364 2.6558+-0.1179 minus-boolean-double 3.1434+-0.2148 ? 3.3782+-0.5752 ? might be 1.0747x slower minus-boolean 2.3353+-0.1345 ? 2.3583+-0.0796 ? misc-strict-eq 31.5971+-3.3080 ? 31.7144+-2.5371 ? mod-boolean-double 11.6461+-0.7653 11.4479+-0.1887 might be 1.0173x faster mod-boolean 8.5694+-0.1282 ? 8.6840+-0.2908 ? might be 1.0134x slower mul-boolean-double 3.7699+-0.1779 3.6695+-0.1799 might be 1.0274x faster mul-boolean 2.9768+-0.3235 2.8047+-0.0691 might be 1.0614x faster neg-boolean 3.1166+-0.2209 ? 3.2095+-0.4366 ? might be 1.0298x slower negative-zero-divide 0.2922+-0.0132 ? 0.3022+-0.0177 ? might be 1.0341x slower negative-zero-modulo 0.3020+-0.0229 ? 0.3271+-0.0832 ? might be 1.0834x slower negative-zero-negate 0.3206+-0.0953 0.2767+-0.0144 might be 1.1590x faster nested-function-parsing 33.2330+-0.5923 ? 34.6573+-1.8738 ? might be 1.0429x slower new-array-buffer-dead 2.8084+-0.1177 2.7625+-0.0805 might be 1.0166x faster new-array-buffer-push 6.5778+-1.1399 6.0111+-0.1846 might be 1.0943x faster new-array-dead 9.3390+-0.2585 ? 9.3866+-0.2448 ? new-array-push 3.4980+-0.1000 3.4767+-0.1690 no-inline-constructor 104.2046+-2.0748 ^ 99.1365+-1.6528 ^ definitely 1.0511x faster number-test 2.8665+-0.2726 2.8520+-0.0884 object-closure-call 4.8632+-0.1233 ? 5.0229+-0.1426 ? might be 1.0328x slower object-test 2.9804+-0.5016 2.8392+-0.0860 might be 1.0497x faster obvious-sink-pathology-taken 109.1981+-4.2485 108.8920+-3.6015 obvious-sink-pathology 101.8260+-4.8161 ? 102.2931+-3.2325 ? obviously-elidable-new-object 29.3339+-0.8868 ? 30.0793+-2.0566 ? might be 1.0254x slower plus-boolean-arith 2.3568+-0.0305 2.3378+-0.0389 plus-boolean-double 3.0899+-0.1082 ? 3.1982+-0.2433 ? might be 1.0351x slower plus-boolean 2.6943+-0.4313 2.5338+-0.0313 might be 1.0634x faster poly-chain-access-different-prototypes-simple 2.7225+-0.0673 2.6884+-0.0430 might be 1.0127x faster poly-chain-access-different-prototypes 2.5248+-0.0720 ? 2.6799+-0.4172 ? might be 1.0614x slower poly-chain-access-simpler 2.7139+-0.0495 2.6768+-0.0273 might be 1.0138x faster poly-chain-access 2.4696+-0.0374 ? 2.6811+-0.2853 ? might be 1.0856x slower poly-stricteq 49.0265+-1.9175 48.7370+-2.3467 polymorphic-array-call 1.1368+-0.1067 ? 1.3953+-0.3474 ? might be 1.2274x slower polymorphic-get-by-id 2.9572+-0.3490 2.9211+-0.2287 might be 1.0124x faster polymorphic-put-by-id 25.1311+-1.0029 ? 26.5155+-2.2912 ? might be 1.0551x slower polymorphic-structure 13.4222+-0.0724 ? 13.7797+-0.9442 ? might be 1.0266x slower polyvariant-monomorphic-get-by-id 6.7347+-0.7173 ? 7.3619+-0.3826 ? might be 1.0931x slower proto-getter-access 9.3525+-0.3926 9.2690+-0.2964 put-by-id-replace-and-transition 8.0773+-1.1979 ? 8.7051+-0.8021 ? might be 1.0777x slower put-by-id-slightly-polymorphic 2.6502+-0.2033 ? 2.6683+-0.1497 ? put-by-id 9.9354+-0.6552 ? 10.4067+-1.1075 ? might be 1.0474x slower put-by-val-direct 0.3984+-0.0393 ? 0.4167+-0.0757 ? might be 1.0460x slower put-by-val-large-index-blank-indexing-type 5.4278+-0.3129 5.2504+-0.2056 might be 1.0338x faster put-by-val-machine-int 2.3900+-0.1358 ? 2.4824+-0.1353 ? might be 1.0387x slower rare-osr-exit-on-local 15.0614+-0.5574 ? 15.0756+-0.4121 ? register-pressure-from-osr 17.2441+-0.2085 ? 17.5985+-0.7247 ? might be 1.0206x slower setter 5.6403+-0.2233 ? 5.6740+-0.2026 ? simple-activation-demo 25.5746+-1.0131 25.0949+-0.8342 might be 1.0191x faster simple-getter-access 12.2058+-0.4435 ? 12.6913+-0.4785 ? might be 1.0398x slower simple-poly-call-nested 9.0664+-0.5427 ? 9.3857+-0.5053 ? might be 1.0352x slower simple-poly-call 1.2444+-0.1428 1.1978+-0.0678 might be 1.0389x faster sin-boolean 18.5880+-0.7338 ? 19.7125+-3.2179 ? might be 1.0605x slower singleton-scope 63.9209+-1.1289 ? 69.0076+-4.5615 ? might be 1.0796x slower sinkable-new-object-dag 58.8492+-2.4413 ? 59.4607+-2.1354 ? might be 1.0104x slower sinkable-new-object-taken 46.8191+-1.7058 ? 47.8025+-2.0966 ? might be 1.0210x slower sinkable-new-object 32.7854+-2.6706 32.0248+-1.6447 might be 1.0237x faster slow-array-profile-convergence 2.5002+-0.0934 ? 2.7700+-0.4286 ? might be 1.1079x slower slow-convergence 2.4597+-0.0738 2.3134+-0.1249 might be 1.0632x faster sorting-benchmark 19.9068+-0.2240 ? 20.5193+-1.0230 ? might be 1.0308x slower sparse-conditional 1.4491+-0.6226 1.0806+-0.0668 might be 1.3409x faster splice-to-remove 14.7258+-1.2575 14.4904+-0.7576 might be 1.0162x faster string-char-code-at 15.4672+-0.9344 15.2467+-0.6643 might be 1.0145x faster string-concat-object 2.2537+-0.2272 ? 2.6590+-0.9789 ? might be 1.1798x slower string-concat-pair-object 2.2893+-0.3090 2.2187+-0.1886 might be 1.0318x faster string-concat-pair-simple 9.7191+-0.4734 9.5822+-0.8515 might be 1.0143x faster string-concat-simple 10.1916+-0.7071 9.5281+-0.4320 might be 1.0696x faster string-cons-repeat 7.9585+-1.6298 6.7456+-0.1736 might be 1.1798x faster string-cons-tower 7.4580+-1.1617 7.0392+-0.1557 might be 1.0595x faster string-equality 16.0351+-0.2221 ! 16.7319+-0.4130 ! definitely 1.0435x slower string-get-by-val-big-char 6.6435+-0.2092 ? 6.6755+-0.0481 ? string-get-by-val-out-of-bounds-insane 3.2417+-0.1668 ? 3.3169+-0.1166 ? might be 1.0232x slower string-get-by-val-out-of-bounds 4.1405+-0.1076 4.0271+-0.0812 might be 1.0282x faster string-get-by-val 2.8062+-0.0442 ? 2.8787+-0.1245 ? might be 1.0258x slower string-hash 1.9552+-0.1858 1.9231+-0.2480 might be 1.0167x faster string-long-ident-equality 13.0693+-0.3431 ? 13.4061+-0.3947 ? might be 1.0258x slower string-out-of-bounds 10.9115+-0.7506 10.8110+-0.2618 string-repeat-arith 26.7191+-0.6456 ? 27.5263+-1.9874 ? might be 1.0302x slower string-sub 53.5263+-1.6492 ? 56.2571+-2.6641 ? might be 1.0510x slower string-test 2.7769+-0.1744 ? 2.7997+-0.1983 ? string-var-equality 29.4113+-1.9757 28.4253+-0.4293 might be 1.0347x faster structure-hoist-over-transitions 2.4623+-0.2014 2.4500+-0.1623 substring-concat-weird 36.8912+-1.3354 35.2205+-0.8419 might be 1.0474x faster substring-concat 38.8551+-2.4629 ? 39.5187+-2.0650 ? might be 1.0171x slower substring 46.2646+-1.7581 44.6912+-2.0713 might be 1.0352x faster switch-char-constant 2.6680+-0.0617 ? 2.6681+-0.0656 ? switch-char 5.8882+-0.4737 ? 5.9835+-0.6203 ? might be 1.0162x slower switch-constant 9.1012+-1.1006 ? 9.1058+-1.2670 ? switch-string-basic-big-var 13.0252+-0.4685 ? 13.0297+-0.3670 ? switch-string-basic-big 12.8772+-0.4670 12.6339+-0.3871 might be 1.0193x faster switch-string-basic-var 12.8571+-0.3752 ? 13.0862+-0.5744 ? might be 1.0178x slower switch-string-basic 12.1924+-0.6081 12.0900+-0.4339 switch-string-big-length-tower-var 20.3615+-1.6314 19.6175+-0.9637 might be 1.0379x faster switch-string-length-tower-var 12.9881+-0.3557 ? 13.4435+-0.7649 ? might be 1.0351x slower switch-string-length-tower 11.7023+-0.5308 ? 11.8256+-0.4900 ? might be 1.0105x slower switch-string-short 11.6604+-0.4084 ? 11.6877+-0.3913 ? switch 12.4290+-0.9163 12.2851+-0.7363 might be 1.0117x faster tear-off-arguments-simple 3.2252+-0.5540 3.0012+-0.1448 might be 1.0746x faster tear-off-arguments 4.2032+-0.3144 ? 4.3772+-0.5108 ? might be 1.0414x slower temporal-structure 12.3700+-0.3469 ? 12.6705+-0.6450 ? might be 1.0243x slower to-int32-boolean 13.3471+-0.2406 13.1847+-0.1359 might be 1.0123x faster try-catch-get-by-val-cloned-arguments 13.7401+-0.3703 13.3313+-0.3802 might be 1.0307x faster try-catch-get-by-val-direct-arguments 6.3034+-0.4698 6.1811+-0.6207 might be 1.0198x faster try-catch-get-by-val-scoped-arguments 7.8293+-1.2211 7.3152+-0.3743 might be 1.0703x faster undefined-property-access 226.4645+-8.5065 223.6179+-5.5732 might be 1.0127x faster undefined-test 3.0068+-0.2926 2.8947+-0.1102 might be 1.0387x faster unprofiled-licm 14.8773+-0.5714 ? 15.2408+-1.3751 ? might be 1.0244x slower varargs-call 14.2415+-0.6159 14.1943+-0.3577 varargs-construct-inline 18.7820+-0.6174 ? 19.5693+-1.0432 ? might be 1.0419x slower varargs-construct 31.5388+-1.0827 ? 32.6742+-1.4529 ? might be 1.0360x slower varargs-inline 8.8014+-0.7807 ? 8.9588+-0.4630 ? might be 1.0179x slower varargs-strict-mode 9.3868+-0.2783 ? 9.4275+-0.2660 ? varargs 9.6763+-0.5520 9.2418+-0.2038 might be 1.0470x faster weird-inlining-const-prop 1.9808+-0.1732 ? 2.1261+-0.2840 ? might be 1.0734x slower <geometric> 7.8084+-0.0303 ? 7.8343+-0.0312 ? might be 1.0033x slower Conf#1 Conf#2 AsmBench: bigfib.cpp 463.3702+-6.4697 ? 467.4141+-4.7488 ? cray.c 418.8826+-18.2133 409.0131+-3.6996 might be 1.0241x faster dry.c 440.6656+-23.0364 ? 447.0929+-13.8954 ? might be 1.0146x slower FloatMM.c 722.2202+-13.1661 718.7134+-8.7176 gcc-loops.cpp 3671.1379+-31.7635 3664.4146+-19.2404 n-body.c 857.9115+-12.6585 ? 865.0992+-12.0665 ? Quicksort.c 416.8713+-20.4731 ? 422.2262+-23.8556 ? might be 1.0128x slower stepanov_container.cpp 3841.0628+-71.4988 ? 3848.5145+-49.2268 ? Towers.c 250.0525+-3.2630 247.6178+-3.5322 <geometric> 752.8638+-10.2810 ? 753.4253+-5.8840 ? might be 1.0007x slower Conf#1 Conf#2 CompressionBench: huffman 317.0789+-9.5755 ? 328.8267+-4.4989 ? might be 1.0370x slower arithmetic-simple 360.2041+-8.9787 356.4766+-5.1464 might be 1.0105x faster arithmetic-precise 274.7274+-7.8083 ? 277.0234+-6.3220 ? arithmetic-complex-precise 272.8705+-4.3761 ? 274.2039+-3.4109 ? arithmetic-precise-order-0 373.5639+-5.0691 ? 379.2192+-7.1383 ? might be 1.0151x slower arithmetic-precise-order-1 313.5288+-6.4897 310.0246+-1.9832 might be 1.0113x faster arithmetic-precise-order-2 350.1953+-5.7512 ? 353.9706+-6.3965 ? might be 1.0108x slower arithmetic-simple-order-1 346.3776+-1.8501 344.3650+-3.2373 arithmetic-simple-order-2 402.6695+-14.8484 ? 408.6294+-10.3885 ? might be 1.0148x slower lz-string 361.6016+-20.1777 358.8073+-16.1366 <geometric> 334.7346+-2.0089 ? 336.6172+-1.9735 ? might be 1.0056x slower Conf#1 Conf#2 Geomean of preferred means: <scaled-result> 58.3083+-0.3133 ? 58.5072+-0.1621 ? might be 1.0034x slower
Filip Pizlo
Comment 6 2015-04-16 16:54:41 PDT
(In reply to comment #5) > Benchmark report for SunSpider, LongSpider, V8Spider, Octane, Kraken, > JSRegress, AsmBench, and CompressionBench on Basiles-MacBook-Pro > (MacBookPro11,3). > > VMs tested: > "Conf#1" at /Volumes/Data/Baseline/OpenSource/WebKitBuild/Release/jsc > (r182899) > "Conf#2" at /Volumes/Data/WIP/OpenSource/WebKitBuild/Release/jsc (r182899) > > Collected 6 samples per benchmark/VM, with 6 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. > > Conf#1 > Conf#2 > SunSpider: > 3d-cube 4.5990+-0.4221 > 4.5580+-0.4000 > 3d-morph 5.3000+-0.2380 ? > 5.7707+-0.5599 ? might be 1.0888x slower > 3d-raytrace 5.2030+-0.1255 > 5.1391+-0.1589 might be 1.0124x faster > access-binary-trees 2.0130+-0.1379 ? > 2.1147+-0.2031 ? might be 1.0505x slower > access-fannkuch 5.2538+-0.2003 > 5.1330+-0.0866 might be 1.0235x faster > access-nbody 2.4436+-0.0668 ? > 2.5848+-0.1917 ? might be 1.0578x slower > access-nsieve 3.0695+-0.0978 > 3.0288+-0.0482 might be 1.0134x faster > bitops-3bit-bits-in-byte 1.4302+-0.0547 ? > 1.4372+-0.0600 ? > bitops-bits-in-byte 3.1510+-0.0900 ? > 3.1742+-0.0953 ? > bitops-bitwise-and 1.9744+-0.0459 ? > 2.0336+-0.0831 ? might be 1.0300x slower > bitops-nsieve-bits 3.3628+-0.2180 > 3.3339+-0.1496 > controlflow-recursive 2.1097+-0.5539 > 1.9800+-0.1972 might be 1.0655x faster > crypto-aes 3.6970+-0.3664 > 3.6661+-0.3406 > crypto-md5 2.1835+-0.1504 ? > 2.1943+-0.1653 ? > crypto-sha1 2.3311+-0.2203 ? > 2.4919+-0.2643 ? might be 1.0690x slower > date-format-tofte 7.1383+-0.8088 > 6.8739+-0.4691 might be 1.0385x faster > date-format-xparb 4.5496+-0.4182 ? > 4.9247+-0.3355 ? might be 1.0824x slower > math-cordic 2.8370+-0.1048 ? > 2.9555+-0.2449 ? might be 1.0418x slower > math-partial-sums 4.6330+-0.3963 > 4.4578+-0.0867 might be 1.0393x faster > math-spectral-norm 1.9716+-0.2931 > 1.7439+-0.0396 might be 1.1306x faster > regexp-dna 6.2935+-0.2762 ? > 6.4294+-0.3350 ? might be 1.0216x slower > string-base64 4.4842+-0.4132 > 4.1725+-0.0447 might be 1.0747x faster > string-fasta 5.9849+-0.1679 ? > 6.0536+-0.2466 ? might be 1.0115x slower > string-tagcloud 9.1351+-0.3214 > 8.9260+-0.3835 might be 1.0234x faster > string-unpack-code 19.3884+-1.0826 ? > 19.4414+-0.8618 ? > string-validate-input 4.6764+-0.1425 ^ > 4.4034+-0.0963 ^ definitely 1.0620x faster > > <arithmetic> 4.5851+-0.0275 > 4.5778+-0.0672 might be 1.0016x faster > > Conf#1 > Conf#2 > LongSpider: > 3d-cube 803.0699+-19.4063 ? > 809.0305+-22.9386 ? > 3d-morph 1564.8647+-9.0996 ? > 1592.0244+-36.2075 ? might be 1.0174x slower > 3d-raytrace 683.3388+-7.9320 ? > 689.4224+-19.0132 ? > access-binary-trees 875.1529+-11.8724 > 875.0818+-10.3352 > access-fannkuch 272.9062+-2.2378 ? > 276.8879+-9.3927 ? might be 1.0146x slower > access-nbody 570.1220+-7.6976 ? > 572.7385+-5.7348 ? > access-nsieve 671.2916+-11.8369 > 663.4910+-11.6132 might be 1.0118x faster > bitops-3bit-bits-in-byte 42.5070+-1.2714 ? > 42.7292+-0.9330 ? > bitops-bits-in-byte 90.3566+-5.8304 ? > 92.7364+-10.6011 ? might be 1.0263x slower > bitops-nsieve-bits 702.1930+-15.8141 > 701.4176+-27.2682 > controlflow-recursive 477.7046+-9.0323 > 469.2044+-4.1564 might be 1.0181x faster > crypto-aes 579.1833+-13.0341 > 578.3113+-9.3444 > crypto-md5 549.2771+-7.2576 ? > 549.8418+-12.2125 ? > crypto-sha1 589.8635+-5.6536 ? > 598.7798+-19.0848 ? might be 1.0151x slower > date-format-tofte 526.1929+-8.1329 ? > 532.0518+-11.3256 ? might be 1.0111x slower > date-format-xparb 681.3737+-32.6099 > 650.3320+-6.2473 might be 1.0477x faster > math-cordic 520.5151+-2.9877 ? > 523.9935+-4.3744 ? > math-partial-sums 441.5575+-17.0293 > 440.5492+-8.6003 > math-spectral-norm 585.5274+-13.4977 > 574.2784+-3.4286 might be 1.0196x faster > string-base64 334.0148+-3.9755 ? > 336.6573+-9.9106 ? > string-fasta 385.5599+-4.3994 ? > 392.4106+-17.3611 ? might be 1.0178x slower > string-tagcloud 205.2707+-4.4528 ? > 207.0415+-3.9943 ? > > <geometric> 450.5265+-2.6040 ? > 451.4909+-2.5574 ? might be 1.0021x slower > > Conf#1 > Conf#2 > V8Spider: > crypto 54.0365+-1.3280 > 52.2855+-3.1355 might be 1.0335x faster > deltablue 83.9845+-5.3576 ? > 88.6670+-8.8956 ? might be 1.0558x slower > earley-boyer 43.1970+-2.9738 > 40.6932+-1.0516 might be 1.0615x faster > raytrace 33.5772+-1.7996 > 32.2699+-1.9154 might be 1.0405x faster > regexp 59.2108+-2.3339 ? > 61.2446+-2.4999 ? might be 1.0343x slower > richards 73.3956+-2.4970 > 72.6655+-2.8048 might be 1.0100x faster > splay 35.4069+-1.8101 ? > 38.1630+-2.1307 ? might be 1.0778x slower > > <geometric> 51.8508+-1.2358 ? > 51.9804+-0.7505 ? might be 1.0025x slower > > Conf#1 > Conf#2 > Octane: > encrypt 0.20654+-0.00216 > 0.20399+-0.00331 might be 1.0125x faster > decrypt 3.68884+-0.13734 > 3.63728+-0.11008 might be 1.0142x faster > deltablue x2 0.16711+-0.00213 ? > 0.16839+-0.00228 ? > earley 0.48790+-0.00581 ^ > 0.45680+-0.00475 ^ definitely 1.0681x faster Awesome! I was hoping for this speed-up. > boyer 5.94139+-0.14081 ? > 5.96870+-0.22438 ? > navier-stokes x2 5.29282+-0.07064 > 5.28472+-0.05824 > raytrace x2 1.01948+-0.01012 ? > 1.08758+-0.07561 ? might be 1.0668x slower > richards x2 0.09749+-0.00287 ? > 0.09881+-0.00126 ? might be 1.0136x slower > splay x2 0.36818+-0.00904 ? > 0.36949+-0.00561 ? > regexp x2 29.75310+-0.29887 ? > 33.22591+-9.28795 ? might be 1.1167x slower The Conf#2 regexp number looks super noisy - maybe there was a hickup when you ran this. You can rerun Octane by passing --octane, just to make sure. > pdfjs x2 40.68228+-0.48934 > 40.56041+-0.44654 > mandreel x2 47.57093+-0.91062 ? > 47.79446+-0.59973 ? > gbemu x2 32.51786+-0.42407 ? > 34.14483+-2.56798 ? might be 1.0500x slower > closure 0.51076+-0.00803 ? > 0.51717+-0.01498 ? might be 1.0125x slower > jquery 6.33312+-0.10046 ? > 6.36897+-0.07959 ? > box2d x2 10.76840+-0.20003 > 10.72413+-0.10087 > zlib x2 364.63312+-21.52860 ? > 370.22668+-16.85547 ? might be 1.0153x slower > typescript x2 677.01628+-10.09086 > 671.84550+-16.64095 > > <geometric> 5.96377+-0.03872 ? > 6.04088+-0.11905 ? might be 1.0129x slower > > Conf#1 > Conf#2 > Kraken: > ai-astar 286.006+-6.358 ? > 289.807+-14.165 ? might be 1.0133x slower > audio-beat-detection 103.218+-1.358 ? > 103.284+-2.454 ? > audio-dft 171.470+-6.639 > 168.479+-5.258 might be 1.0178x faster > audio-fft 82.698+-3.331 > 81.769+-1.331 might be 1.0114x faster > audio-oscillator 189.286+-4.257 > 187.925+-3.023 > imaging-darkroom 99.996+-1.531 ^ > 96.974+-1.263 ^ definitely 1.0312x faster > imaging-desaturate 59.568+-2.109 ? > 60.793+-3.393 ? might be 1.0206x slower > imaging-gaussian-blur 91.527+-2.680 > 91.223+-2.118 > json-parse-financial 40.964+-2.532 > 38.903+-1.628 might be 1.0530x faster > json-stringify-tinderbox 53.079+-3.025 ? > 53.270+-2.721 ? > stanford-crypto-aes 59.757+-1.597 > 59.332+-3.018 > stanford-crypto-ccm 47.465+-4.762 ? > 52.497+-4.608 ? might be 1.1060x slower > stanford-crypto-pbkdf2 152.617+-0.850 ? > 154.951+-2.227 ? might be 1.0153x slower > stanford-crypto-sha256-iterative 50.950+-1.876 ? > 52.015+-4.015 ? might be 1.0209x slower > > <arithmetic> 106.329+-1.144 ? > 106.516+-0.966 ? might be 1.0018x slower > > Conf#1 > Conf#2 > JSRegress: > abs-boolean 2.7480+-0.4438 > 2.3927+-0.0552 might be 1.1485x faster > adapt-to-double-divide 16.8929+-0.7533 ? > 17.2890+-0.8639 ? might be 1.0234x slower > aliased-arguments-getbyval 1.2045+-0.0916 > 1.1359+-0.0327 might be 1.0604x faster > allocate-big-object 2.7470+-0.3407 > 2.5776+-0.2086 might be 1.0657x faster > arguments-named-and-reflective 11.7227+-0.6724 > 11.2056+-0.5321 might be 1.0461x faster > arguments-out-of-bounds 10.6211+-0.1652 ? > 10.9550+-0.8114 ? might be 1.0314x slower > arguments-strict-mode 10.5998+-1.0592 > 10.3425+-0.3434 might be 1.0249x faster > arguments 9.2973+-0.4011 ? > 9.5707+-1.0173 ? might be 1.0294x slower > arity-mismatch-inlining 0.8181+-0.0546 ? > 0.8242+-0.0283 ? > array-access-polymorphic-structure 6.2909+-0.5219 > 6.2135+-0.1936 might be 1.0125x faster > array-nonarray-polymorhpic-access 29.8688+-1.1692 > 28.6213+-0.7186 might be 1.0436x faster > array-prototype-every 84.4322+-4.7173 ? > 84.6002+-4.4236 ? > array-prototype-forEach 79.9800+-2.3311 ? > 82.1193+-2.8389 ? might be 1.0267x slower > array-prototype-map 89.8567+-3.8944 ? > 91.7608+-3.6254 ? might be 1.0212x slower > array-prototype-some 82.8041+-1.3283 ? > 84.0225+-1.6694 ? might be 1.0147x slower > array-splice-contiguous 43.7137+-2.7928 ^ > 39.2650+-1.4598 ^ definitely 1.1133x faster > array-with-double-add 3.3536+-0.0490 ? > 3.4866+-0.2506 ? might be 1.0397x slower > array-with-double-increment 3.0107+-0.0857 ? > 3.0753+-0.1019 ? might be 1.0215x slower > array-with-double-mul-add 4.2085+-0.1196 ? > 4.3105+-0.2434 ? might be 1.0242x slower > array-with-double-sum 3.1305+-0.0575 ? > 3.2215+-0.0668 ? might be 1.0291x slower > array-with-int32-add-sub 5.9574+-0.2820 > 5.8525+-0.1278 might be 1.0179x faster > array-with-int32-or-double-sum 3.2518+-0.1384 ? > 3.3018+-0.1600 ? might be 1.0154x slower > ArrayBuffer-DataView-alloc-large-long-lived > 29.9264+-3.4862 > 29.1947+-2.5537 might be 1.0251x faster > ArrayBuffer-DataView-alloc-long-lived 12.4987+-0.4142 ? > 13.1595+-0.8660 ? might be 1.0529x slower > ArrayBuffer-Int32Array-byteOffset 3.8010+-0.4661 > 3.6384+-0.0812 might be 1.0447x faster > ArrayBuffer-Int8Array-alloc-large-long-lived > 29.2546+-2.1755 ? > 29.9987+-1.6036 ? might be 1.0254x slower > ArrayBuffer-Int8Array-alloc-long-lived-buffer > 21.5986+-1.2087 ? > 22.6066+-1.4367 ? might be 1.0467x slower > ArrayBuffer-Int8Array-alloc-long-lived 12.2603+-0.9141 ? > 12.6168+-0.9715 ? might be 1.0291x slower > ArrayBuffer-Int8Array-alloc 10.5776+-0.7337 ? > 10.5972+-0.8041 ? > asmjs_bool_bug 6.7557+-0.2707 ? > 6.9858+-0.3773 ? might be 1.0340x slower > assign-custom-setter-polymorphic 2.5253+-0.1049 ! > 2.8373+-0.2027 ! definitely 1.1235x slower > assign-custom-setter 3.5640+-0.2274 > 3.5006+-0.1931 might be 1.0181x faster > basic-set 8.4462+-0.3159 ^ > 7.5940+-0.2815 ^ definitely 1.1122x faster > big-int-mul 3.5740+-0.1947 ? > 3.5913+-0.2012 ? > boolean-test 2.8243+-0.1023 > 2.7772+-0.0515 might be 1.0169x faster > branch-fold 3.4902+-0.0507 ? > 3.5294+-0.0732 ? might be 1.0113x slower > by-val-generic 7.3203+-0.2307 ? > 7.8826+-0.9629 ? might be 1.0768x slower > call-spread-apply 28.2916+-1.0146 ? > 28.4963+-1.5479 ? > call-spread-call 21.9257+-0.6111 ? > 23.0448+-0.9835 ? might be 1.0510x slower > captured-assignments 0.3754+-0.0294 ? > 0.4396+-0.1660 ? might be 1.1712x slower > cast-int-to-double 4.9582+-0.2255 > 4.9142+-0.4035 > cell-argument 6.5584+-0.3514 > 6.4486+-0.3642 might be 1.0170x faster > cfg-simplify 2.8680+-0.0554 ? > 2.9181+-0.0690 ? might be 1.0175x slower > chain-getter-access 9.2376+-0.1841 ? > 9.3055+-0.1645 ? > cmpeq-obj-to-obj-other 10.3249+-1.1233 ? > 11.4552+-0.9144 ? might be 1.1095x slower > constant-test 4.5785+-0.0876 ? > 4.6676+-0.1524 ? might be 1.0195x slower > create-lots-of-functions 18.9207+-0.9808 > 18.8655+-0.8375 Weird that this didn't speed up, but I'm not going to lose sleep over it. > DataView-custom-properties 34.2514+-1.9517 > 33.9054+-2.2844 might be 1.0102x faster > deconstructing-parameters-overridden-by-function > 0.4200+-0.0255 > 0.4172+-0.0206 > delay-tear-off-arguments-strictmode 13.0027+-1.0279 > 12.7358+-0.6904 might be 1.0210x faster > deltablue-varargs 149.0005+-3.6472 ? > 150.4966+-3.5405 ? might be 1.0100x slower > destructuring-arguments 13.7839+-0.5444 ? > 14.1349+-1.0686 ? might be 1.0255x slower > destructuring-swap 4.7524+-0.0771 > 4.7107+-0.1501 > direct-arguments-getbyval 1.1806+-0.0862 ? > 1.2484+-0.1862 ? might be 1.0574x slower > div-boolean-double 5.4690+-0.1892 > 5.3942+-0.1219 might be 1.0139x faster > div-boolean 8.3518+-0.2142 ? > 8.4397+-0.2047 ? might be 1.0105x slower > double-get-by-val-out-of-bounds 4.2427+-0.2607 ? > 4.3839+-0.2920 ? might be 1.0333x slower > double-pollution-getbyval 9.0117+-0.2586 ? > 9.4095+-0.4854 ? might be 1.0442x slower > double-pollution-putbyoffset 4.2609+-0.3763 > 4.0723+-0.3965 might be 1.0463x faster > double-to-int32-typed-array-no-inline 2.0020+-0.1148 ? > 2.0867+-0.1236 ? might be 1.0423x slower > double-to-int32-typed-array 1.6825+-0.0906 ? > 1.8558+-0.2524 ? might be 1.1030x slower > double-to-uint32-typed-array-no-inline 2.0839+-0.0905 > 2.0732+-0.0478 > double-to-uint32-typed-array 1.7563+-0.0410 ? > 1.8911+-0.1388 ? might be 1.0768x slower > elidable-new-object-dag 36.4322+-1.9877 ? > 38.4146+-2.2599 ? might be 1.0544x slower > elidable-new-object-roflcopter 39.5800+-3.2988 ? > 40.3142+-1.5844 ? might be 1.0185x slower > elidable-new-object-then-call 32.8670+-0.7956 ? > 33.7900+-2.4622 ? might be 1.0281x slower > elidable-new-object-tree 40.0287+-2.1967 ? > 40.1307+-2.5954 ? > empty-string-plus-int 5.0966+-0.4203 > 4.8264+-0.0872 might be 1.0560x faster > emscripten-cube2hash 27.4349+-1.6436 ? > 28.9473+-1.3847 ? might be 1.0551x slower > exit-length-on-plain-object 13.2412+-0.5283 ? > 13.6662+-0.6771 ? might be 1.0321x slower > external-arguments-getbyval 1.3882+-0.2539 > 1.1597+-0.0745 might be 1.1971x faster > external-arguments-putbyval 2.2380+-0.4385 > 2.1066+-0.1197 might be 1.0624x faster > fixed-typed-array-storage-var-index 1.1728+-0.0480 ? > 1.2301+-0.2000 ? might be 1.0489x slower > fixed-typed-array-storage 0.8059+-0.0618 > 0.7869+-0.0246 might be 1.0241x faster > Float32Array-matrix-mult 3.8065+-0.0985 ? > 4.0284+-0.1859 ? might be 1.0583x slower > Float32Array-to-Float64Array-set 50.2299+-1.2094 ? > 50.4268+-2.3526 ? > Float64Array-alloc-long-lived 66.2428+-4.1969 ? > 69.7954+-3.8949 ? might be 1.0536x slower > Float64Array-to-Int16Array-set 59.1003+-2.1973 ? > 63.7486+-4.1921 ? might be 1.0786x slower > fold-double-to-int 13.1240+-1.1017 > 12.9946+-0.4298 > fold-get-by-id-to-multi-get-by-offset-rare-int > 9.5769+-0.4531 > 9.5712+-0.5621 > fold-get-by-id-to-multi-get-by-offset 7.6045+-0.2872 > 7.5236+-0.3723 might be 1.0107x faster > fold-multi-get-by-offset-to-get-by-offset > 7.8856+-0.4022 > 7.4326+-1.4994 might be 1.0609x faster > fold-multi-get-by-offset-to-poly-get-by-offset > 7.1477+-1.2727 ? > 7.2024+-0.8092 ? > fold-multi-put-by-offset-to-poly-put-by-offset > 6.8101+-0.5595 > 6.7418+-1.0311 might be 1.0101x faster > fold-multi-put-by-offset-to-put-by-offset > 4.2776+-1.0053 ? > 4.4882+-0.3999 ? might be 1.0492x slower > fold-multi-put-by-offset-to-replace-or-transition-put-by-offset > 9.0651+-0.9331 > 8.5602+-0.5205 might be 1.0590x faster > fold-put-by-id-to-multi-put-by-offset 8.6409+-0.8774 > 8.2080+-0.5519 might be 1.0527x faster > fold-put-structure 4.2302+-0.5890 > 3.8970+-0.3751 might be 1.0855x faster > for-of-iterate-array-entries 4.1351+-0.1937 ? > 4.1656+-0.2959 ? > for-of-iterate-array-keys 3.4547+-0.1565 ? > 3.6283+-0.4799 ? might be 1.0503x slower > for-of-iterate-array-values 3.3615+-0.2701 ? > 3.4164+-0.2363 ? might be 1.0163x slower > fround 18.7360+-0.6884 > 18.0425+-0.2313 might be 1.0384x faster > ftl-library-inlining-dataview 59.7107+-1.0284 ? > 60.6379+-1.6045 ? might be 1.0155x slower > ftl-library-inlining 113.0357+-1.0805 ? > 113.3408+-3.9464 ? > function-dot-apply 2.0549+-0.1545 ? > 2.1304+-0.1704 ? might be 1.0368x slower > function-test 2.9247+-0.1028 ? > 3.0096+-0.2812 ? might be 1.0290x slower > function-with-eval 98.3656+-3.2450 > 95.4508+-4.3330 might be 1.0305x faster > gcse-poly-get-less-obvious 14.6366+-0.3455 ? > 14.9663+-0.5736 ? might be 1.0225x slower > gcse-poly-get 16.5342+-0.4340 > 16.4926+-0.5500 > gcse 3.8509+-0.0942 ? > 4.0758+-0.3135 ? might be 1.0584x slower > get-by-id-bimorphic-check-structure-elimination-simple > 2.6150+-0.0713 ? > 2.9797+-0.4114 ? might be 1.1395x slower > get-by-id-bimorphic-check-structure-elimination > 5.7497+-0.1264 ? > 5.8299+-0.1380 ? might be 1.0139x slower > get-by-id-chain-from-try-block 6.7911+-0.4547 > 6.7316+-0.5497 > get-by-id-check-structure-elimination 4.5090+-0.2174 > 4.4187+-0.1527 might be 1.0204x faster > get-by-id-proto-or-self 14.6354+-0.8275 ? > 14.9453+-0.5930 ? might be 1.0212x slower > get-by-id-quadmorphic-check-structure-elimination-simple > 2.8881+-0.0596 ? > 2.9364+-0.0563 ? might be 1.0167x slower > get-by-id-self-or-proto 15.6650+-1.5602 > 14.5909+-0.3865 might be 1.0736x faster > get-by-val-out-of-bounds 4.1775+-0.2754 > 3.9650+-0.1570 might be 1.0536x faster > get_callee_monomorphic 3.2670+-0.5239 > 3.2102+-0.1951 might be 1.0177x faster > get_callee_polymorphic 3.3111+-0.2381 ? > 3.7052+-0.6147 ? might be 1.1190x slower > getter-no-activation 4.8610+-0.1775 > 4.7294+-0.0508 might be 1.0278x faster > getter-richards 119.8239+-10.7413 > 113.8175+-7.1069 might be 1.0528x faster > getter 5.5036+-0.4508 > 5.4344+-0.4854 might be 1.0127x faster > global-var-const-infer-fire-from-opt 0.8310+-0.0785 ? > 0.9010+-0.1613 ? might be 1.0843x slower > global-var-const-infer 0.8368+-0.0923 ? > 0.8814+-0.2145 ? might be 1.0533x slower > HashMap-put-get-iterate-keys 24.5553+-0.7970 > 24.2126+-0.7866 might be 1.0142x faster > HashMap-put-get-iterate 24.5605+-1.1128 > 24.5103+-0.6654 > HashMap-string-put-get-iterate 24.7011+-0.5622 ? > 26.0255+-1.1568 ? might be 1.0536x slower > hoist-make-rope 8.6155+-0.9475 ? > 8.9034+-1.1139 ? might be 1.0334x slower > hoist-poly-check-structure-effectful-loop > 4.4753+-0.5385 ? > 4.4849+-0.3313 ? > hoist-poly-check-structure 3.1894+-0.0537 ? > 3.2617+-0.0828 ? might be 1.0227x slower > imul-double-only 6.7939+-0.4081 ? > 7.2358+-0.8276 ? might be 1.0651x slower > imul-int-only 8.9048+-0.8455 > 8.1757+-0.2743 might be 1.0892x faster > imul-mixed 6.6031+-0.4097 ? > 6.8957+-0.5789 ? might be 1.0443x slower > in-four-cases 16.2204+-1.2562 > 16.1936+-0.9405 > in-one-case-false 8.7146+-0.6285 > 8.7010+-0.3543 > in-one-case-true 8.5498+-0.3815 ? > 9.0774+-0.7581 ? might be 1.0617x slower > in-two-cases 8.8425+-0.6496 > 8.8256+-0.3619 > indexed-properties-in-objects 2.9958+-0.3019 > 2.7664+-0.0527 might be 1.0829x faster > infer-closure-const-then-mov-no-inline 3.2489+-0.1349 > 3.2427+-0.0922 > infer-closure-const-then-mov 17.5238+-0.4144 ? > 17.8732+-0.4842 ? might be 1.0199x slower > infer-closure-const-then-put-to-scope-no-inline > 12.1395+-0.5615 > 11.8581+-0.1924 might be 1.0237x faster > infer-closure-const-then-put-to-scope 24.1640+-0.7216 > 23.9893+-0.4584 > infer-closure-const-then-reenter-no-inline > 53.4968+-1.1598 ? > 53.5332+-1.5640 ? > infer-closure-const-then-reenter 24.0221+-0.6190 > 23.9969+-0.2753 > infer-constant-global-property 31.8931+-2.0093 > 31.1590+-1.2222 might be 1.0236x faster > infer-constant-property 2.5698+-0.0772 ? > 2.6031+-0.0709 ? might be 1.0130x slower > infer-one-time-closure-ten-vars 9.0645+-0.8550 > 8.7854+-0.3409 might be 1.0318x faster > infer-one-time-closure-two-vars 8.2507+-0.5361 ? > 8.4159+-0.2874 ? might be 1.0200x slower > infer-one-time-closure 8.1318+-0.2054 ? > 8.2144+-0.4658 ? might be 1.0102x slower > infer-one-time-deep-closure 13.2590+-0.7924 > 12.8795+-0.2290 might be 1.0295x faster > inline-arguments-access 4.0005+-0.2881 ? > 4.1435+-0.2783 ? might be 1.0358x slower > inline-arguments-aliased-access 4.0032+-0.2799 ? > 4.1799+-0.4470 ? might be 1.0441x slower > inline-arguments-local-escape 4.5880+-0.4949 > 4.2919+-0.2669 might be 1.0690x faster > inline-get-scoped-var 4.6175+-0.1888 ? > 4.7461+-0.2735 ? might be 1.0279x slower > inlined-put-by-id-transition 10.1607+-1.0217 ? > 10.4530+-0.8905 ? might be 1.0288x slower > int-or-other-abs-then-get-by-val 4.7682+-0.0458 ? > 5.1167+-0.6116 ? might be 1.0731x slower > int-or-other-abs-zero-then-get-by-val 16.5144+-0.8045 > 16.4062+-0.6289 > int-or-other-add-then-get-by-val 4.0459+-0.0954 ? > 4.1252+-0.1824 ? might be 1.0196x slower > int-or-other-add 4.8770+-0.0916 ? > 4.9255+-0.0949 ? > int-or-other-div-then-get-by-val 3.7848+-0.1406 ? > 3.9276+-0.2441 ? might be 1.0377x slower > int-or-other-max-then-get-by-val 4.1429+-0.1432 > 4.0680+-0.1470 might be 1.0184x faster > int-or-other-min-then-get-by-val 4.2741+-0.2279 > 4.1191+-0.1098 might be 1.0376x faster > int-or-other-mod-then-get-by-val 3.4909+-0.0859 ? > 3.5928+-0.3685 ? might be 1.0292x slower > int-or-other-mul-then-get-by-val 3.7795+-0.2048 > 3.6820+-0.1162 might be 1.0265x faster > int-or-other-neg-then-get-by-val 4.3761+-0.1499 > 4.3751+-0.1939 > int-or-other-neg-zero-then-get-by-val 16.8457+-0.5792 > 16.4021+-0.3421 might be 1.0270x faster > int-or-other-sub-then-get-by-val 4.0293+-0.1119 ? > 4.4473+-0.8107 ? might be 1.1037x slower > int-or-other-sub 3.4258+-0.2533 ? > 3.6146+-0.5609 ? might be 1.0551x slower > int-overflow-local 4.3879+-0.2968 > 4.0895+-0.1212 might be 1.0730x faster > Int16Array-alloc-long-lived 47.3970+-2.7082 > 46.4593+-2.3605 might be 1.0202x faster > Int16Array-bubble-sort-with-byteLength 18.2376+-0.5570 > 17.4799+-0.2591 might be 1.0433x faster > Int16Array-bubble-sort 17.5588+-0.3331 > 17.4849+-0.3113 > Int16Array-load-int-mul 1.4047+-0.0593 ? > 1.4112+-0.0864 ? > Int16Array-to-Int32Array-set 47.2113+-2.4555 > 46.2984+-1.2754 might be 1.0197x faster > Int32Array-alloc-large 13.4160+-1.5318 > 12.5693+-0.5207 might be 1.0674x faster > Int32Array-alloc-long-lived 56.0865+-5.7028 > 51.5915+-2.8652 might be 1.0871x faster > Int32Array-alloc 3.2741+-0.6467 > 2.9731+-0.4771 might be 1.1012x faster > Int32Array-Int8Array-view-alloc 6.2072+-0.2253 ? > 6.2992+-0.0947 ? might be 1.0148x slower > int52-spill 6.1930+-0.5481 > 6.0498+-0.2707 might be 1.0237x faster > Int8Array-alloc-long-lived 42.6370+-1.5805 ? > 43.6062+-2.3511 ? might be 1.0227x slower > Int8Array-load-with-byteLength 3.6861+-0.3571 > 3.5717+-0.3485 might be 1.0320x faster > Int8Array-load 3.5367+-0.5029 > 3.3553+-0.0803 might be 1.0541x faster > integer-divide 10.8437+-0.3235 ? > 10.9915+-0.3429 ? might be 1.0136x slower > integer-modulo 1.6750+-0.0881 ? > 1.6802+-0.0710 ? > large-int-captured 5.0495+-0.3427 ? > 5.1034+-0.2086 ? might be 1.0107x slower > large-int-neg 15.2710+-1.0538 > 15.1453+-0.8531 > large-int 14.2634+-0.3110 ? > 14.7625+-0.7109 ? might be 1.0350x slower > logical-not 4.2077+-0.0679 ? > 4.3075+-0.2118 ? might be 1.0237x slower > lots-of-fields 10.5186+-0.8063 ? > 10.8567+-0.7571 ? might be 1.0321x slower > make-indexed-storage 2.9126+-0.1316 ? > 3.1215+-0.1897 ? might be 1.0717x slower > make-rope-cse 3.9254+-0.4837 > 3.8067+-0.1298 might be 1.0312x faster > marsaglia-larger-ints 35.3390+-3.0543 > 33.6873+-0.6071 might be 1.0490x faster > marsaglia-osr-entry 21.2856+-0.6825 ? > 22.5553+-1.7285 ? might be 1.0596x slower > max-boolean 2.6908+-0.0776 > 2.6394+-0.0624 might be 1.0195x faster > method-on-number 16.5206+-1.4855 > 16.1541+-0.6653 might be 1.0227x faster > min-boolean 2.6788+-0.0364 > 2.6558+-0.1179 > minus-boolean-double 3.1434+-0.2148 ? > 3.3782+-0.5752 ? might be 1.0747x slower > minus-boolean 2.3353+-0.1345 ? > 2.3583+-0.0796 ? > misc-strict-eq 31.5971+-3.3080 ? > 31.7144+-2.5371 ? > mod-boolean-double 11.6461+-0.7653 > 11.4479+-0.1887 might be 1.0173x faster > mod-boolean 8.5694+-0.1282 ? > 8.6840+-0.2908 ? might be 1.0134x slower > mul-boolean-double 3.7699+-0.1779 > 3.6695+-0.1799 might be 1.0274x faster > mul-boolean 2.9768+-0.3235 > 2.8047+-0.0691 might be 1.0614x faster > neg-boolean 3.1166+-0.2209 ? > 3.2095+-0.4366 ? might be 1.0298x slower > negative-zero-divide 0.2922+-0.0132 ? > 0.3022+-0.0177 ? might be 1.0341x slower > negative-zero-modulo 0.3020+-0.0229 ? > 0.3271+-0.0832 ? might be 1.0834x slower > negative-zero-negate 0.3206+-0.0953 > 0.2767+-0.0144 might be 1.1590x faster > nested-function-parsing 33.2330+-0.5923 ? > 34.6573+-1.8738 ? might be 1.0429x slower > new-array-buffer-dead 2.8084+-0.1177 > 2.7625+-0.0805 might be 1.0166x faster > new-array-buffer-push 6.5778+-1.1399 > 6.0111+-0.1846 might be 1.0943x faster > new-array-dead 9.3390+-0.2585 ? > 9.3866+-0.2448 ? > new-array-push 3.4980+-0.1000 > 3.4767+-0.1690 > no-inline-constructor 104.2046+-2.0748 ^ > 99.1365+-1.6528 ^ definitely 1.0511x faster > number-test 2.8665+-0.2726 > 2.8520+-0.0884 > object-closure-call 4.8632+-0.1233 ? > 5.0229+-0.1426 ? might be 1.0328x slower > object-test 2.9804+-0.5016 > 2.8392+-0.0860 might be 1.0497x faster > obvious-sink-pathology-taken 109.1981+-4.2485 > 108.8920+-3.6015 > obvious-sink-pathology 101.8260+-4.8161 ? > 102.2931+-3.2325 ? > obviously-elidable-new-object 29.3339+-0.8868 ? > 30.0793+-2.0566 ? might be 1.0254x slower > plus-boolean-arith 2.3568+-0.0305 > 2.3378+-0.0389 > plus-boolean-double 3.0899+-0.1082 ? > 3.1982+-0.2433 ? might be 1.0351x slower > plus-boolean 2.6943+-0.4313 > 2.5338+-0.0313 might be 1.0634x faster > poly-chain-access-different-prototypes-simple > 2.7225+-0.0673 > 2.6884+-0.0430 might be 1.0127x faster > poly-chain-access-different-prototypes 2.5248+-0.0720 ? > 2.6799+-0.4172 ? might be 1.0614x slower > poly-chain-access-simpler 2.7139+-0.0495 > 2.6768+-0.0273 might be 1.0138x faster > poly-chain-access 2.4696+-0.0374 ? > 2.6811+-0.2853 ? might be 1.0856x slower > poly-stricteq 49.0265+-1.9175 > 48.7370+-2.3467 > polymorphic-array-call 1.1368+-0.1067 ? > 1.3953+-0.3474 ? might be 1.2274x slower > polymorphic-get-by-id 2.9572+-0.3490 > 2.9211+-0.2287 might be 1.0124x faster > polymorphic-put-by-id 25.1311+-1.0029 ? > 26.5155+-2.2912 ? might be 1.0551x slower > polymorphic-structure 13.4222+-0.0724 ? > 13.7797+-0.9442 ? might be 1.0266x slower > polyvariant-monomorphic-get-by-id 6.7347+-0.7173 ? > 7.3619+-0.3826 ? might be 1.0931x slower > proto-getter-access 9.3525+-0.3926 > 9.2690+-0.2964 > put-by-id-replace-and-transition 8.0773+-1.1979 ? > 8.7051+-0.8021 ? might be 1.0777x slower > put-by-id-slightly-polymorphic 2.6502+-0.2033 ? > 2.6683+-0.1497 ? > put-by-id 9.9354+-0.6552 ? > 10.4067+-1.1075 ? might be 1.0474x slower > put-by-val-direct 0.3984+-0.0393 ? > 0.4167+-0.0757 ? might be 1.0460x slower > put-by-val-large-index-blank-indexing-type > 5.4278+-0.3129 > 5.2504+-0.2056 might be 1.0338x faster > put-by-val-machine-int 2.3900+-0.1358 ? > 2.4824+-0.1353 ? might be 1.0387x slower > rare-osr-exit-on-local 15.0614+-0.5574 ? > 15.0756+-0.4121 ? > register-pressure-from-osr 17.2441+-0.2085 ? > 17.5985+-0.7247 ? might be 1.0206x slower > setter 5.6403+-0.2233 ? > 5.6740+-0.2026 ? > simple-activation-demo 25.5746+-1.0131 > 25.0949+-0.8342 might be 1.0191x faster > simple-getter-access 12.2058+-0.4435 ? > 12.6913+-0.4785 ? might be 1.0398x slower > simple-poly-call-nested 9.0664+-0.5427 ? > 9.3857+-0.5053 ? might be 1.0352x slower > simple-poly-call 1.2444+-0.1428 > 1.1978+-0.0678 might be 1.0389x faster > sin-boolean 18.5880+-0.7338 ? > 19.7125+-3.2179 ? might be 1.0605x slower > singleton-scope 63.9209+-1.1289 ? > 69.0076+-4.5615 ? might be 1.0796x slower > sinkable-new-object-dag 58.8492+-2.4413 ? > 59.4607+-2.1354 ? might be 1.0104x slower > sinkable-new-object-taken 46.8191+-1.7058 ? > 47.8025+-2.0966 ? might be 1.0210x slower > sinkable-new-object 32.7854+-2.6706 > 32.0248+-1.6447 might be 1.0237x faster > slow-array-profile-convergence 2.5002+-0.0934 ? > 2.7700+-0.4286 ? might be 1.1079x slower > slow-convergence 2.4597+-0.0738 > 2.3134+-0.1249 might be 1.0632x faster > sorting-benchmark 19.9068+-0.2240 ? > 20.5193+-1.0230 ? might be 1.0308x slower > sparse-conditional 1.4491+-0.6226 > 1.0806+-0.0668 might be 1.3409x faster > splice-to-remove 14.7258+-1.2575 > 14.4904+-0.7576 might be 1.0162x faster > string-char-code-at 15.4672+-0.9344 > 15.2467+-0.6643 might be 1.0145x faster > string-concat-object 2.2537+-0.2272 ? > 2.6590+-0.9789 ? might be 1.1798x slower > string-concat-pair-object 2.2893+-0.3090 > 2.2187+-0.1886 might be 1.0318x faster > string-concat-pair-simple 9.7191+-0.4734 > 9.5822+-0.8515 might be 1.0143x faster > string-concat-simple 10.1916+-0.7071 > 9.5281+-0.4320 might be 1.0696x faster > string-cons-repeat 7.9585+-1.6298 > 6.7456+-0.1736 might be 1.1798x faster > string-cons-tower 7.4580+-1.1617 > 7.0392+-0.1557 might be 1.0595x faster > string-equality 16.0351+-0.2221 ! > 16.7319+-0.4130 ! definitely 1.0435x slower > string-get-by-val-big-char 6.6435+-0.2092 ? > 6.6755+-0.0481 ? > string-get-by-val-out-of-bounds-insane 3.2417+-0.1668 ? > 3.3169+-0.1166 ? might be 1.0232x slower > string-get-by-val-out-of-bounds 4.1405+-0.1076 > 4.0271+-0.0812 might be 1.0282x faster > string-get-by-val 2.8062+-0.0442 ? > 2.8787+-0.1245 ? might be 1.0258x slower > string-hash 1.9552+-0.1858 > 1.9231+-0.2480 might be 1.0167x faster > string-long-ident-equality 13.0693+-0.3431 ? > 13.4061+-0.3947 ? might be 1.0258x slower > string-out-of-bounds 10.9115+-0.7506 > 10.8110+-0.2618 > string-repeat-arith 26.7191+-0.6456 ? > 27.5263+-1.9874 ? might be 1.0302x slower > string-sub 53.5263+-1.6492 ? > 56.2571+-2.6641 ? might be 1.0510x slower > string-test 2.7769+-0.1744 ? > 2.7997+-0.1983 ? > string-var-equality 29.4113+-1.9757 > 28.4253+-0.4293 might be 1.0347x faster > structure-hoist-over-transitions 2.4623+-0.2014 > 2.4500+-0.1623 > substring-concat-weird 36.8912+-1.3354 > 35.2205+-0.8419 might be 1.0474x faster > substring-concat 38.8551+-2.4629 ? > 39.5187+-2.0650 ? might be 1.0171x slower > substring 46.2646+-1.7581 > 44.6912+-2.0713 might be 1.0352x faster > switch-char-constant 2.6680+-0.0617 ? > 2.6681+-0.0656 ? > switch-char 5.8882+-0.4737 ? > 5.9835+-0.6203 ? might be 1.0162x slower > switch-constant 9.1012+-1.1006 ? > 9.1058+-1.2670 ? > switch-string-basic-big-var 13.0252+-0.4685 ? > 13.0297+-0.3670 ? > switch-string-basic-big 12.8772+-0.4670 > 12.6339+-0.3871 might be 1.0193x faster > switch-string-basic-var 12.8571+-0.3752 ? > 13.0862+-0.5744 ? might be 1.0178x slower > switch-string-basic 12.1924+-0.6081 > 12.0900+-0.4339 > switch-string-big-length-tower-var 20.3615+-1.6314 > 19.6175+-0.9637 might be 1.0379x faster > switch-string-length-tower-var 12.9881+-0.3557 ? > 13.4435+-0.7649 ? might be 1.0351x slower > switch-string-length-tower 11.7023+-0.5308 ? > 11.8256+-0.4900 ? might be 1.0105x slower > switch-string-short 11.6604+-0.4084 ? > 11.6877+-0.3913 ? > switch 12.4290+-0.9163 > 12.2851+-0.7363 might be 1.0117x faster > tear-off-arguments-simple 3.2252+-0.5540 > 3.0012+-0.1448 might be 1.0746x faster > tear-off-arguments 4.2032+-0.3144 ? > 4.3772+-0.5108 ? might be 1.0414x slower > temporal-structure 12.3700+-0.3469 ? > 12.6705+-0.6450 ? might be 1.0243x slower > to-int32-boolean 13.3471+-0.2406 > 13.1847+-0.1359 might be 1.0123x faster > try-catch-get-by-val-cloned-arguments 13.7401+-0.3703 > 13.3313+-0.3802 might be 1.0307x faster > try-catch-get-by-val-direct-arguments 6.3034+-0.4698 > 6.1811+-0.6207 might be 1.0198x faster > try-catch-get-by-val-scoped-arguments 7.8293+-1.2211 > 7.3152+-0.3743 might be 1.0703x faster > undefined-property-access 226.4645+-8.5065 > 223.6179+-5.5732 might be 1.0127x faster > undefined-test 3.0068+-0.2926 > 2.8947+-0.1102 might be 1.0387x faster > unprofiled-licm 14.8773+-0.5714 ? > 15.2408+-1.3751 ? might be 1.0244x slower > varargs-call 14.2415+-0.6159 > 14.1943+-0.3577 > varargs-construct-inline 18.7820+-0.6174 ? > 19.5693+-1.0432 ? might be 1.0419x slower > varargs-construct 31.5388+-1.0827 ? > 32.6742+-1.4529 ? might be 1.0360x slower > varargs-inline 8.8014+-0.7807 ? > 8.9588+-0.4630 ? might be 1.0179x slower > varargs-strict-mode 9.3868+-0.2783 ? > 9.4275+-0.2660 ? > varargs 9.6763+-0.5520 > 9.2418+-0.2038 might be 1.0470x faster > weird-inlining-const-prop 1.9808+-0.1732 ? > 2.1261+-0.2840 ? might be 1.0734x slower > > <geometric> 7.8084+-0.0303 ? > 7.8343+-0.0312 ? might be 1.0033x slower > > Conf#1 > Conf#2 > AsmBench: > bigfib.cpp 463.3702+-6.4697 ? > 467.4141+-4.7488 ? > cray.c 418.8826+-18.2133 > 409.0131+-3.6996 might be 1.0241x faster > dry.c 440.6656+-23.0364 ? > 447.0929+-13.8954 ? might be 1.0146x slower > FloatMM.c 722.2202+-13.1661 > 718.7134+-8.7176 > gcc-loops.cpp 3671.1379+-31.7635 > 3664.4146+-19.2404 > n-body.c 857.9115+-12.6585 ? > 865.0992+-12.0665 ? > Quicksort.c 416.8713+-20.4731 ? > 422.2262+-23.8556 ? might be 1.0128x slower > stepanov_container.cpp 3841.0628+-71.4988 ? > 3848.5145+-49.2268 ? > Towers.c 250.0525+-3.2630 > 247.6178+-3.5322 > > <geometric> 752.8638+-10.2810 ? > 753.4253+-5.8840 ? might be 1.0007x slower > > Conf#1 > Conf#2 > CompressionBench: > huffman 317.0789+-9.5755 ? > 328.8267+-4.4989 ? might be 1.0370x slower > arithmetic-simple 360.2041+-8.9787 > 356.4766+-5.1464 might be 1.0105x faster > arithmetic-precise 274.7274+-7.8083 ? > 277.0234+-6.3220 ? > arithmetic-complex-precise 272.8705+-4.3761 ? > 274.2039+-3.4109 ? > arithmetic-precise-order-0 373.5639+-5.0691 ? > 379.2192+-7.1383 ? might be 1.0151x slower > arithmetic-precise-order-1 313.5288+-6.4897 > 310.0246+-1.9832 might be 1.0113x faster > arithmetic-precise-order-2 350.1953+-5.7512 ? > 353.9706+-6.3965 ? might be 1.0108x slower > arithmetic-simple-order-1 346.3776+-1.8501 > 344.3650+-3.2373 > arithmetic-simple-order-2 402.6695+-14.8484 ? > 408.6294+-10.3885 ? might be 1.0148x slower > lz-string 361.6016+-20.1777 > 358.8073+-16.1366 > > <geometric> 334.7346+-2.0089 ? > 336.6172+-1.9735 ? might be 1.0056x slower > > Conf#1 > Conf#2 > Geomean of preferred means: > <scaled-result> 58.3083+-0.3133 ? > 58.5072+-0.1621 ? might be 1.0034x slower
Basile Clement
Comment 7 2015-04-16 16:54:48 PDT
Created attachment 250980 [details] Cleaned up patch
Filip Pizlo
Comment 8 2015-04-16 16:55:44 PDT
Comment on attachment 250980 [details] Cleaned up patch R=me. This is great.
Basile Clement
Comment 9 2015-04-16 17:16:11 PDT
Re-ran the Octane benchmark to offset the hiccup on the regexp bench. Benchmark report for Octane on Basiles-MacBook-Pro (MacBookPro11,3). VMs tested: "Conf#1" at /Volumes/Data/Baseline/OpenSource/WebKitBuild/Release/jsc (r182899) "Conf#2" at /Volumes/Data/WIP/OpenSource/WebKitBuild/Release/jsc (r182899) Collected 6 samples per benchmark/VM, with 6 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. Conf#1 Conf#2 encrypt 0.20299+-0.00210 ? 0.20498+-0.00314 ? decrypt 3.71181+-0.10318 3.70406+-0.11871 deltablue x2 0.17178+-0.00579 0.16550+-0.00078 might be 1.0380x faster earley 0.48429+-0.00351 ^ 0.45653+-0.00461 ^ definitely 1.0608x faster boyer 5.81100+-0.12890 ? 6.01216+-0.19705 ? might be 1.0346x slower navier-stokes x2 5.35065+-0.16091 5.24746+-0.07685 might be 1.0197x faster raytrace x2 1.09675+-0.04058 1.08612+-0.03352 richards x2 0.09570+-0.00121 ? 0.09748+-0.00175 ? might be 1.0186x slower splay x2 0.36184+-0.00409 ? 0.36956+-0.00652 ? might be 1.0213x slower regexp x2 29.95385+-0.72763 29.12325+-0.68707 might be 1.0285x faster pdfjs x2 40.03323+-0.43196 40.02588+-0.17253 mandreel x2 48.16510+-0.74271 47.97694+-0.91950 gbemu x2 32.91826+-0.65299 32.81293+-0.41711 closure 0.51014+-0.00732 0.50741+-0.00279 jquery 6.26699+-0.04984 ? 6.33675+-0.05284 ? might be 1.0111x slower box2d x2 10.68723+-0.20455 10.61400+-0.09674 zlib x2 365.98031+-14.27976 ? 366.00936+-18.78087 ? typescript x2 677.13818+-18.99019 ? 678.85726+-8.10687 ? <geometric> 5.98815+-0.05931 5.95943+-0.04587 might be 1.0048x faster
WebKit Commit Bot
Comment 10 2015-04-16 17:46:02 PDT
Comment on attachment 250980 [details] Cleaned up patch Clearing flags on attachment: 250980 Committed r182929: <http://trac.webkit.org/changeset/182929>
WebKit Commit Bot
Comment 11 2015-04-16 17:46:06 PDT
All reviewed patches have been landed. Closing bug.
Geoffrey Garen
Comment 12 2015-04-17 11:13:04 PDT
Comment on attachment 250980 [details] Cleaned up patch 👍
Note You need to log in before you can comment on or make changes to this bug.