WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
124824
Create a new SymbolTable every time code is loaded so that the watchpoints don't get reused
https://bugs.webkit.org/show_bug.cgi?id=124824
Summary
Create a new SymbolTable every time code is loaded so that the watchpoints do...
Filip Pizlo
Reported
2013-11-24 20:39:59 PST
Patch forthcoming.
Attachments
the patch
(6.61 KB, patch)
2013-11-24 20:42 PST
,
Filip Pizlo
no flags
Details
Formatted Diff
Diff
the patch
(7.38 KB, patch)
2013-11-26 10:51 PST
,
Filip Pizlo
oliver
: review+
Details
Formatted Diff
Diff
Show Obsolete
(1)
View All
Add attachment
proposed patch, testcase, etc.
Filip Pizlo
Comment 1
2013-11-24 20:42:00 PST
Created
attachment 217771
[details]
the patch
WebKit Commit Bot
Comment 2
2013-11-24 20:44:13 PST
Attachment 217771
[details]
did not pass style-queue: Failed to run "['Tools/Scripts/check-webkit-style', '--diff-files', u'Source/JavaScriptCore/ChangeLog', u'Source/JavaScriptCore/bytecode/CodeBlock.cpp', u'Source/JavaScriptCore/bytecode/CodeBlock.h', u'Source/JavaScriptCore/runtime/Executable.cpp', u'Source/JavaScriptCore/runtime/Executable.h', u'Source/JavaScriptCore/runtime/SymbolTable.cpp', u'Source/JavaScriptCore/runtime/SymbolTable.h']" exit_code: 1 Source/JavaScriptCore/runtime/Executable.h:642: The parameter name "kind" adds no information, so it should be removed. [readability/parameter_name] [5] Total errors found: 1 in 7 files If any of these errors are false positives, please file a bug against check-webkit-style.
Filip Pizlo
Comment 3
2013-11-24 20:46:20 PST
(In reply to
comment #2
)
>
Attachment 217771
[details]
did not pass style-queue: > > Failed to run "['Tools/Scripts/check-webkit-style', '--diff-files', u'Source/JavaScriptCore/ChangeLog', u'Source/JavaScriptCore/bytecode/CodeBlock.cpp', u'Source/JavaScriptCore/bytecode/CodeBlock.h', u'Source/JavaScriptCore/runtime/Executable.cpp', u'Source/JavaScriptCore/runtime/Executable.h', u'Source/JavaScriptCore/runtime/SymbolTable.cpp', u'Source/JavaScriptCore/runtime/SymbolTable.h']" exit_code: 1 > Source/JavaScriptCore/runtime/Executable.h:642: The parameter name "kind" adds no information, so it should be removed. [readability/parameter_name] [5]
OK.
> Total errors found: 1 in 7 files > > > If any of these errors are false positives, please file a bug against check-webkit-style.
Filip Pizlo
Comment 4
2013-11-25 16:56:51 PST
jsc performance: Benchmark report for SunSpider, LongSpider, V8Spider, Octane, Kraken, and JSRegress on oldmac (MacPro4,1). VMs tested: "TipOfTree" at /Volumes/Data/pizlo/secondary/OpenSource/WebKitBuild/Release/jsc (
r159740
) "CopySymTab" at /Volumes/Data/fromMiniMe/secondary/OpenSource/WebKitBuild/Release/jsc (
r159740
) Collected 10 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. TipOfTree CopySymTab SunSpider: 3d-cube 7.6446+-0.0549 ! 7.7753+-0.0604 ! definitely 1.0171x slower 3d-morph 8.7776+-0.0969 ? 8.7794+-0.0723 ? 3d-raytrace 8.7102+-0.1080 ? 8.8419+-0.1262 ? might be 1.0151x slower access-binary-trees 1.9945+-0.0098 ? 2.0053+-0.0160 ? access-fannkuch 7.9058+-0.0845 ? 7.9517+-0.0668 ? access-nbody 4.2179+-0.0087 ? 4.2623+-0.0746 ? might be 1.0105x slower access-nsieve 5.0074+-0.0472 5.0014+-0.1412 bitops-3bit-bits-in-byte 1.7985+-0.0101 ? 1.8044+-0.0048 ? bitops-bits-in-byte 7.1964+-0.1204 ? 7.2851+-0.0814 ? might be 1.0123x slower bitops-bitwise-and 2.9309+-0.0338 2.8896+-0.0413 might be 1.0143x faster bitops-nsieve-bits 4.5968+-0.0050 ? 4.6307+-0.0385 ? controlflow-recursive 3.1268+-0.0138 3.1238+-0.0072 crypto-aes 5.4596+-0.0594 ? 5.4695+-0.0313 ? crypto-md5 3.1345+-0.0240 ? 3.1566+-0.0342 ? crypto-sha1 2.9513+-0.0129 2.9503+-0.0056 date-format-tofte 11.3048+-0.1305 11.1911+-0.1828 might be 1.0102x faster date-format-xparb 8.4759+-0.1096 ? 8.5363+-0.1033 ? math-cordic 4.2083+-0.0105 ? 4.2216+-0.0190 ? math-partial-sums 10.2356+-0.0753 10.2171+-0.0582 math-spectral-norm 2.7158+-0.0086 ? 2.7499+-0.0528 ? might be 1.0126x slower regexp-dna 12.9231+-0.1286 12.9173+-0.0874 string-base64 5.4523+-0.0451 5.4457+-0.0315 string-fasta 10.2019+-0.1699 10.1619+-0.0809 string-tagcloud 14.9225+-0.0729 14.8579+-0.1062 string-unpack-code 29.8445+-0.0855 ! 32.1630+-0.4239 ! definitely 1.0777x slower string-validate-input 6.9009+-0.0348 ! 6.9800+-0.0385 ! definitely 1.0115x slower <arithmetic> * 7.4092+-0.0107 ! 7.5142+-0.0112 ! definitely 1.0142x slower <geometric> 5.9420+-0.0080 ! 5.9775+-0.0095 ! definitely 1.0060x slower <harmonic> 4.8566+-0.0075 ! 4.8745+-0.0095 ! definitely 1.0037x slower TipOfTree CopySymTab LongSpider: 3d-cube 2703.9365+-3.9136 2696.0858+-5.0703 3d-morph 1498.4985+-0.7594 ? 1509.9048+-19.5227 ? 3d-raytrace 1520.3677+-21.2682 1513.0964+-23.3779 access-binary-trees 2231.7467+-13.6419 2214.9558+-10.3532 access-fannkuch 668.1980+-0.5733 668.1774+-0.4200 access-nbody 1495.6409+-1.0396 1495.5843+-0.5606 access-nsieve 1571.4964+-19.5330 1562.5011+-3.0108 bitops-3bit-bits-in-byte 121.5510+-0.3188 121.3406+-0.0730 bitops-bits-in-byte 636.9204+-2.5221 ? 637.7132+-2.3492 ? bitops-nsieve-bits 1051.3298+-5.3181 1046.6471+-0.6273 controlflow-recursive 1490.2872+-1.2752 1490.2179+-1.1549 crypto-aes 1646.1164+-9.4504 ? 1654.8371+-13.8756 ? crypto-md5 1183.8359+-0.9811 ? 1196.0458+-24.8614 ? might be 1.0103x slower crypto-sha1 1618.6957+-5.2373 ? 1621.8124+-5.3680 ? date-format-tofte 1174.3958+-7.8118 ? 1177.0419+-19.5596 ? date-format-xparb 1521.6439+-97.2078 1477.6711+-21.8617 might be 1.0298x faster math-cordic 1734.7163+-1.1729 1734.4026+-3.4767 math-partial-sums 1314.0044+-1.1408 1312.9203+-1.2681 math-spectral-norm 1825.9652+-0.6124 ? 1826.0428+-0.4979 ? string-base64 505.7064+-1.4969 504.5364+-2.2468 string-fasta 988.4855+-2.1942 ? 993.1136+-4.5240 ? string-tagcloud 376.2648+-0.9510 ! 382.0128+-3.8524 ! definitely 1.0153x slower <arithmetic> 1312.7183+-4.5401 1310.7573+-1.6146 might be 1.0015x faster <geometric> * 1117.4803+-3.2195 1117.0129+-1.5836 might be 1.0004x faster <harmonic> 800.6037+-1.3192 ? 801.0247+-1.1428 ? might be 1.0005x slower TipOfTree CopySymTab V8Spider: crypto 79.3742+-0.0903 79.2813+-0.1754 deltablue 98.8394+-0.8073 ? 99.0392+-1.4672 ? earley-boyer 70.9971+-0.4408 ? 71.0537+-0.1354 ? raytrace 39.8418+-0.4467 39.6886+-0.1621 regexp 100.5406+-0.3455 ^ 99.5463+-0.4721 ^ definitely 1.0100x faster richards 134.9759+-3.4570 ? 134.9973+-1.8001 ? splay 46.0867+-0.8246 45.8702+-0.3601 <arithmetic> 81.5223+-0.5395 81.3538+-0.3345 might be 1.0021x faster <geometric> * 75.4092+-0.3646 75.2352+-0.2476 might be 1.0023x faster <harmonic> 69.3224+-0.3197 69.1410+-0.1995 might be 1.0026x faster TipOfTree CopySymTab Octane and V8v7: encrypt 0.46490+-0.00039 ? 0.46510+-0.00027 ? decrypt 8.58993+-0.04503 8.56601+-0.01044 deltablue x2 0.56931+-0.00901 0.56378+-0.00528 earley 0.85503+-0.00660 0.84850+-0.00606 boyer 12.26305+-0.02073 ? 12.27083+-0.03787 ? raytrace x2 4.26565+-0.01793 ? 4.33576+-0.06432 ? might be 1.0164x slower regexp x2 33.39911+-0.20821 33.21733+-0.06631 richards x2 0.43006+-0.01030 ? 0.43031+-0.00894 ? splay x2 0.63560+-0.00393 0.62962+-0.00325 navier-stokes x2 10.92651+-0.00282 10.92557+-0.00413 closure 0.42107+-0.00422 ? 0.42716+-0.00464 ? might be 1.0145x slower jquery 6.07371+-0.08052 ? 6.14573+-0.02120 ? might be 1.0119x slower gbemu x2 71.90979+-0.95683 ? 72.68570+-0.82886 ? might be 1.0108x slower mandreel x2 144.29540+-0.15608 ? 144.53761+-0.23425 ? pdfjs x2 100.68831+-0.21031 ? 100.75017+-0.23062 ? box2d x2 35.37824+-0.48276 ? 35.42703+-0.20452 ? V8v7: <arithmetic> 7.66409+-0.02796 7.64720+-0.01120 might be 1.0022x faster <geometric> * 2.50823+-0.01254 2.50429+-0.00621 might be 1.0016x faster <harmonic> 1.02931+-0.01023 1.02521+-0.00671 might be 1.0040x faster Octane including V8v7: <arithmetic> 32.06399+-0.08361 ? 32.14343+-0.06447 ? might be 1.0025x slower <geometric> * 6.97537+-0.02164 ? 6.98354+-0.01401 ? might be 1.0012x slower <harmonic> 1.42833+-0.01152 1.42632+-0.00799 might be 1.0014x faster TipOfTree CopySymTab Kraken: ai-astar 493.562+-0.625 ? 494.040+-0.598 ? audio-beat-detection 236.397+-1.071 235.890+-0.507 audio-dft 291.503+-1.476 290.523+-1.200 audio-fft 143.164+-0.106 143.141+-0.153 audio-oscillator 244.927+-0.297 244.827+-0.382 imaging-darkroom 287.811+-1.714 285.959+-0.648 imaging-desaturate 158.347+-0.159 ? 158.496+-0.265 ? imaging-gaussian-blur 362.772+-0.342 ? 362.804+-0.234 ? json-parse-financial 80.366+-0.279 ? 80.444+-0.333 ? json-stringify-tinderbox 105.913+-0.423 ! 106.609+-0.259 ! definitely 1.0066x slower stanford-crypto-aes 90.366+-0.466 ? 90.796+-1.359 ? stanford-crypto-ccm 101.378+-0.964 100.732+-0.688 stanford-crypto-pbkdf2 261.362+-2.210 ? 261.749+-1.749 ? stanford-crypto-sha256-iterative 114.532+-0.227 ! 115.352+-0.222 ! definitely 1.0072x slower <arithmetic> * 212.314+-0.174 212.240+-0.189 might be 1.0003x faster <geometric> 182.656+-0.124 ? 182.707+-0.250 ? might be 1.0003x slower <harmonic> 157.877+-0.165 ? 158.039+-0.355 ? might be 1.0010x slower TipOfTree CopySymTab JSRegress: adapt-to-double-divide 22.6738+-0.1076 ? 22.7295+-0.1140 ? aliased-arguments-getbyval 0.9550+-0.0032 0.9540+-0.0035 allocate-big-object 2.7481+-0.1447 2.6269+-0.0054 might be 1.0462x faster arity-mismatch-inlining 0.8898+-0.0088 0.8860+-0.0045 array-access-polymorphic-structure 9.7167+-0.1347 ? 9.8668+-0.1998 ? might be 1.0154x slower array-nonarray-polymorhpic-access 56.2996+-0.2563 ? 56.4088+-0.2159 ? array-with-double-add 5.7469+-0.0558 5.7365+-0.0453 array-with-double-increment 4.3510+-0.0044 ? 4.3516+-0.0140 ? array-with-double-mul-add 6.8311+-0.0616 ? 6.8337+-0.0644 ? array-with-double-sum 7.9807+-0.1048 ? 8.0552+-0.0549 ? array-with-int32-add-sub 10.3631+-0.0788 ? 10.4473+-0.1022 ? array-with-int32-or-double-sum 8.0103+-0.0726 ? 8.0577+-0.0915 ? ArrayBuffer-DataView-alloc-large-long-lived 121.4699+-1.2856 121.3552+-1.0574 ArrayBuffer-DataView-alloc-long-lived 34.2373+-0.4068 ^ 32.8394+-0.4101 ^ definitely 1.0426x faster ArrayBuffer-Int32Array-byteOffset 7.0070+-0.0132 7.0052+-0.0688 ArrayBuffer-Int8Array-alloc-huge-long-lived 218.1896+-3.8030 217.3133+-1.4975 ArrayBuffer-Int8Array-alloc-large-long-lived-fragmented 165.6263+-1.0750 ! 168.6699+-1.0239 ! definitely 1.0184x slower ArrayBuffer-Int8Array-alloc-large-long-lived 119.8438+-1.4439 ? 119.9742+-0.9531 ? ArrayBuffer-Int8Array-alloc-long-lived-buffer 49.3155+-0.5233 ! 50.9245+-0.1759 ! definitely 1.0326x slower ArrayBuffer-Int8Array-alloc-long-lived 31.6004+-0.6773 ? 32.2603+-0.3235 ? might be 1.0209x slower ArrayBuffer-Int8Array-alloc 29.0372+-0.4873 28.5876+-0.1139 might be 1.0157x faster asmjs_bool_bug 10.1845+-0.1494 10.0810+-0.1432 might be 1.0103x faster basic-set 21.8917+-0.2788 21.8488+-0.1341 big-int-mul 5.6254+-0.0551 ? 5.6553+-0.0909 ? boolean-test 4.4073+-0.0348 ? 4.4343+-0.0226 ? branch-fold 4.9553+-0.0059 ? 4.9826+-0.0346 ? cast-int-to-double 12.4246+-0.1070 ? 12.4270+-0.1676 ? cell-argument 15.7176+-0.3044 15.6193+-0.0632 cfg-simplify 3.9454+-0.0060 ? 3.9586+-0.0135 ? cmpeq-obj-to-obj-other 12.4455+-0.4792 ? 12.5342+-0.6438 ? constant-test 8.8498+-0.0657 8.8292+-0.0611 DataView-custom-properties 129.8367+-1.0360 129.7806+-1.0252 delay-tear-off-arguments-strictmode 3.5241+-0.0194 3.5101+-0.0059 destructuring-arguments-length 178.4334+-10.4585 177.9164+-4.4094 destructuring-arguments 8.7400+-0.1304 ? 8.8702+-0.0723 ? might be 1.0149x slower destructuring-swap 8.5312+-0.0784 8.5006+-0.0843 direct-arguments-getbyval 0.8386+-0.0150 0.8382+-0.0045 double-pollution-getbyval 10.9599+-0.1023 ? 11.0982+-0.0865 ? might be 1.0126x slower double-pollution-putbyoffset 5.8211+-0.0304 ? 5.8720+-0.0767 ? empty-string-plus-int 10.8140+-0.0749 ? 10.9906+-0.2523 ? might be 1.0163x slower emscripten-cube2hash 52.4484+-0.6048 52.2386+-0.1912 emscripten-memops 9236.7609+-24.0261 ? 9314.5563+-104.0125 ? external-arguments-getbyval 2.0034+-0.0105 ! 2.0276+-0.0078 ! definitely 1.0121x slower external-arguments-putbyval 3.0412+-0.0068 ? 3.0473+-0.0166 ? Float32Array-matrix-mult 6.3783+-0.0321 ? 6.3784+-0.0357 ? Float32Array-to-Float64Array-set 95.0340+-0.7200 93.7558+-1.1503 might be 1.0136x faster Float64Array-alloc-long-lived 101.4129+-0.3468 ? 101.7143+-0.4884 ? Float64Array-to-Int16Array-set 116.6842+-0.8872 ! 120.8914+-1.7272 ! definitely 1.0361x slower fold-double-to-int 25.4479+-0.0837 25.4289+-0.0741 for-of-iterate-array-entries 8.5730+-0.0827 ? 8.5979+-0.1049 ? for-of-iterate-array-keys 3.4723+-0.0567 ? 3.5046+-0.1206 ? for-of-iterate-array-values 2.9668+-0.0582 2.9480+-0.0485 function-dot-apply 3.1554+-0.0059 ? 3.1579+-0.0060 ? function-test 5.0758+-0.0306 5.0532+-0.0460 get-by-id-chain-from-try-block 7.5541+-0.0762 ? 7.5686+-0.0315 ? get-by-id-proto-or-self 26.0444+-0.2097 25.7240+-0.1991 might be 1.0125x faster get-by-id-self-or-proto 24.3202+-0.5321 23.9964+-0.6173 might be 1.0135x faster get_callee_monomorphic 4.6968+-0.0314 ? 4.7630+-0.1247 ? might be 1.0141x slower get_callee_polymorphic 4.4840+-0.0074 ? 4.4984+-0.0080 ? global-var-const-infer-fire-from-opt 0.9519+-0.0117 0.9518+-0.0075 global-var-const-infer 0.7567+-0.0044 ? 0.7638+-0.0273 ? HashMap-put-get-iterate-keys 44.4190+-0.1696 ? 44.4615+-0.1449 ? HashMap-put-get-iterate 62.3563+-0.2562 62.3096+-0.4045 HashMap-string-put-get-iterate 55.4783+-0.3090 ? 55.6311+-0.2245 ? imul-double-only 17.8313+-0.2129 17.6851+-0.0979 imul-int-only 15.0123+-0.2841 ? 15.2668+-0.3885 ? might be 1.0170x slower imul-mixed 22.2307+-0.1204 ? 22.6773+-0.7896 ? might be 1.0201x slower in-four-cases 25.7975+-0.1020 ? 25.9270+-0.1185 ? in-one-case-false 12.1086+-0.0781 ? 12.2128+-0.1325 ? in-one-case-true 12.0606+-0.1190 ? 12.0739+-0.0998 ? in-two-cases 12.8492+-0.0923 ? 12.9379+-0.1713 ? indexed-properties-in-objects 4.7330+-0.0226 4.7254+-0.0080 inline-arguments-access 1.5146+-0.0036 ? 1.5216+-0.0051 ? inline-arguments-local-escape 22.5431+-0.2095 ! 23.5784+-0.4177 ! definitely 1.0459x slower inline-get-scoped-var 7.0045+-0.1320 ? 7.0270+-0.0675 ? inlined-put-by-id-transition 15.2213+-0.2674 15.1508+-0.3592 int-or-other-abs-then-get-by-val 9.3354+-0.1171 ? 9.4058+-0.0757 ? int-or-other-abs-zero-then-get-by-val 37.4988+-0.1567 ? 37.7756+-0.4762 ? int-or-other-add-then-get-by-val 9.7726+-0.1110 9.7341+-0.0796 int-or-other-add 11.0171+-0.0924 10.9997+-0.0344 int-or-other-div-then-get-by-val 6.3112+-0.0530 ? 6.3152+-0.0600 ? int-or-other-max-then-get-by-val 8.8731+-0.1842 8.8615+-0.1376 int-or-other-min-then-get-by-val 7.1415+-0.0175 ? 7.1691+-0.0496 ? int-or-other-mod-then-get-by-val 6.1358+-0.0670 6.0563+-0.0937 might be 1.0131x faster int-or-other-mul-then-get-by-val 6.3711+-0.0986 ? 6.3750+-0.0978 ? int-or-other-neg-then-get-by-val 7.8438+-0.0830 ? 7.9270+-0.1029 ? might be 1.0106x slower int-or-other-neg-zero-then-get-by-val 37.0981+-0.1623 37.0328+-0.0641 int-or-other-sub-then-get-by-val 10.0924+-0.1088 ? 10.1872+-0.1204 ? int-or-other-sub 8.0549+-0.0889 ? 8.0561+-0.0359 ? int-overflow-local 6.6465+-0.0886 ? 6.6731+-0.0909 ? Int16Array-alloc-long-lived 66.9204+-0.3540 66.4938+-0.3432 Int16Array-bubble-sort-with-byteLength 48.9942+-0.0339 ? 49.0548+-0.0678 ? Int16Array-bubble-sort 48.5194+-0.0901 48.4210+-0.1095 Int16Array-load-int-mul 2.0574+-0.0167 2.0568+-0.0052 Int16Array-to-Int32Array-set 89.2849+-1.1691 ! 94.8997+-0.6480 ! definitely 1.0629x slower Int32Array-alloc-huge-long-lived 704.8188+-2.8104 ? 706.5034+-2.8165 ? Int32Array-alloc-huge 803.0271+-5.6413 ? 806.8682+-6.8993 ? Int32Array-alloc-large-long-lived 979.4896+-10.2983 ? 988.6956+-15.9532 ? Int32Array-alloc-large 44.7486+-0.7813 ? 45.1807+-1.0248 ? Int32Array-alloc-long-lived 79.6007+-0.6703 79.0919+-0.5269 Int32Array-alloc 4.5050+-0.0159 ? 4.5085+-0.0211 ? Int32Array-Int8Array-view-alloc 15.0732+-0.1283 ! 15.6232+-0.1286 ! definitely 1.0365x slower int52-spill 12.2800+-0.1114 ? 12.3218+-0.1658 ? Int8Array-alloc-long-lived 65.9000+-0.4908 ? 66.1041+-0.5652 ? Int8Array-load-with-byteLength 5.0251+-0.0587 ? 5.0402+-0.0418 ? Int8Array-load 5.0750+-0.0065 ? 5.0760+-0.0078 ? integer-divide 15.4277+-0.0996 ? 15.5555+-0.0849 ? integer-modulo 2.1018+-0.0075 ? 2.1167+-0.0156 ? large-int-captured 9.1190+-0.1829 8.9242+-0.1097 might be 1.0218x faster large-int-neg 26.0325+-0.2833 ? 26.1159+-0.2832 ? large-int 23.4423+-0.1407 23.3591+-0.1641 lots-of-fields 10.9278+-0.0801 ? 10.9352+-0.1457 ? make-indexed-storage 4.2649+-0.0177 4.2546+-0.0499 make-rope-cse 5.9799+-0.0984 5.9572+-0.0733 marsaglia-larger-ints 119.2078+-0.2099 ? 119.2803+-0.2069 ? marsaglia-osr-entry 52.6343+-0.1063 ? 52.6579+-0.0964 ? marsaglia 519.5093+-0.2671 ? 525.3444+-8.5788 ? might be 1.0112x slower method-on-number 31.0559+-0.6598 ? 31.1521+-0.6116 ? negative-zero-divide 0.3990+-0.0027 ! 0.4047+-0.0024 ! definitely 1.0141x slower negative-zero-modulo 0.3829+-0.0039 ? 0.3849+-0.0011 ? negative-zero-negate 0.3680+-0.0021 0.3676+-0.0014 nested-function-parsing-random 383.1705+-5.1880 ! 394.5169+-0.8431 ! definitely 1.0296x slower nested-function-parsing 48.0309+-0.2717 ! 55.0368+-0.1250 ! definitely 1.1459x slower new-array-buffer-dead 3.7309+-0.0199 ? 3.7667+-0.0519 ? new-array-buffer-push 10.6798+-0.1416 10.5029+-0.1451 might be 1.0168x faster new-array-dead 28.5472+-0.0380 ? 28.5700+-0.0847 ? new-array-push 6.9491+-0.0626 6.9128+-0.0641 number-test 4.3643+-0.0294 4.3404+-0.0623 object-closure-call 13.3235+-0.0998 13.2678+-0.1576 object-test 4.7271+-0.0275 ? 4.7883+-0.0368 ? might be 1.0130x slower poly-stricteq 80.0454+-1.0356 79.7248+-0.1938 polymorphic-structure 21.2336+-0.2367 21.0954+-0.1143 polyvariant-monomorphic-get-by-id 12.0064+-0.1026 11.9256+-0.1213 put-by-id 19.4429+-0.2885 19.3498+-0.2084 put-by-val-large-index-blank-indexing-type 11.1362+-0.2852 11.0053+-0.1193 might be 1.0119x faster rare-osr-exit-on-local 20.3312+-0.0918 20.2230+-0.0746 register-pressure-from-osr 32.1255+-0.1056 32.0730+-0.0951 simple-activation-demo 35.1407+-0.1172 35.0908+-0.1277 slow-array-profile-convergence 4.0181+-0.0129 ? 4.1250+-0.1671 ? might be 1.0266x slower slow-convergence 3.4422+-0.0188 ? 3.4466+-0.0160 ? sparse-conditional 1.3390+-0.0052 ? 1.3608+-0.0285 ? might be 1.0163x slower splice-to-remove 77.2877+-0.1484 76.7539+-0.4951 stepanov_container 11661.5611+-27.3738 11654.1931+-19.5018 string-concat-object 2.9956+-0.0203 2.9876+-0.0136 string-concat-pair-object 2.9229+-0.0224 ? 2.9416+-0.0276 ? string-concat-pair-simple 17.0307+-0.4870 ? 17.1312+-0.4229 ? string-concat-simple 17.2815+-0.3579 17.2306+-0.2329 string-cons-repeat 10.5547+-0.0370 10.5227+-0.0374 string-cons-tower 11.0775+-0.0475 ? 11.1173+-0.0688 ? string-equality 43.3584+-0.0727 ? 43.5829+-0.5524 ? string-get-by-val-big-char 13.5242+-0.2440 13.5077+-0.1110 string-get-by-val-out-of-bounds-insane 5.7505+-0.0370 ! 5.8659+-0.0717 ! definitely 1.0201x slower string-get-by-val-out-of-bounds 5.3169+-0.0157 5.2930+-0.0456 string-get-by-val 4.8342+-0.0785 ? 4.8914+-0.0069 ? might be 1.0118x slower string-hash 2.7413+-0.0038 ? 2.7481+-0.0064 ? string-long-ident-equality 38.3496+-0.4331 ? 38.3662+-0.3604 ? string-repeat-arith 48.4500+-0.2530 ? 50.6536+-3.4016 ? might be 1.0455x slower string-sub 98.3003+-0.7610 ? 98.4983+-0.6022 ? string-test 4.3055+-0.0033 ? 4.3232+-0.0205 ? string-var-equality 87.3749+-1.6011 87.1581+-1.1450 structure-hoist-over-transitions 3.4162+-0.0946 3.3849+-0.0243 switch-char-constant 3.4649+-0.0080 ? 3.4663+-0.0053 ? switch-char 8.1255+-0.0480 ? 8.1506+-0.0753 ? switch-constant 9.2529+-0.1217 9.1823+-0.1073 switch-string-basic-big-var 20.2157+-0.1381 ? 20.2786+-0.1643 ? switch-string-basic-big 21.4789+-0.1534 21.4284+-0.1315 switch-string-basic-var 20.2608+-0.1257 20.2321+-0.0780 switch-string-basic 22.1992+-1.0078 ? 22.7021+-0.3837 ? might be 1.0227x slower switch-string-big-length-tower-var 29.8602+-0.1003 29.8262+-0.0917 switch-string-length-tower-var 21.7370+-0.0361 ? 21.8118+-0.1420 ? switch-string-length-tower 17.0878+-0.2047 17.0022+-0.0950 switch-string-short 16.9707+-0.2338 ? 17.0779+-0.1836 ? switch 15.6451+-0.0783 ? 15.6476+-0.2297 ? tear-off-arguments-simple 2.1984+-0.0044 ? 2.2038+-0.0066 ? tear-off-arguments 3.5340+-0.0079 ? 3.5401+-0.0064 ? temporal-structure 16.9815+-0.1438 16.9708+-0.1388 to-int32-boolean 22.2277+-0.3165 ? 22.2281+-0.0932 ? undefined-test 4.5720+-0.0490 4.5351+-0.0302 weird-inlining-const-prop 2.2915+-0.0110 ? 2.2949+-0.0101 ? <arithmetic> 159.5528+-0.1944 ? 160.2489+-0.6398 ? might be 1.0044x slower <geometric> * 14.1254+-0.0115 ! 14.1733+-0.0146 ! definitely 1.0034x slower <harmonic> 5.2329+-0.0075 ! 5.2477+-0.0064 ! definitely 1.0028x slower TipOfTree CopySymTab All benchmarks: <arithmetic> 226.3106+-0.4215 ? 226.6173+-0.3927 ? might be 1.0014x slower <geometric> 20.5605+-0.0157 ! 20.6183+-0.0141 ! definitely 1.0028x slower <harmonic> 4.7256+-0.0135 ? 4.7330+-0.0086 ? might be 1.0016x slower TipOfTree CopySymTab Geomean of preferred means: <scaled-result> 48.5282+-0.0623 ! 48.6543+-0.0295 ! definitely 1.0026x slower
Filip Pizlo
Comment 5
2013-11-25 16:57:07 PST
DumpRenderTree performance: Benchmark report for SunSpider, LongSpider, V8Spider, Octane, Kraken, JSBench, JSRegress, and DSP on oldmac (MacPro4,1). VMs tested: "TipOfTree" at /Volumes/Data/pizlo/secondary/OpenSource/WebKitBuild/Release/DumpRenderTree (
r159740
) "CopySymTab" at /Volumes/Data/fromMiniMe/secondary/OpenSource/WebKitBuild/Release/DumpRenderTree (
r159740
) Collected 10 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. TipOfTree CopySymTab SunSpider: 3d-cube 8.4013+-0.3407 8.3220+-0.1914 3d-morph 8.7313+-0.0390 8.7237+-0.0300 3d-raytrace 8.9976+-0.0830 ? 9.1741+-0.1630 ? might be 1.0196x slower access-binary-trees 2.1437+-0.0217 2.1346+-0.0236 access-fannkuch 7.7092+-0.0442 ? 7.7482+-0.0283 ? access-nbody 4.0704+-0.0278 ? 4.1047+-0.0262 ? access-nsieve 4.8898+-0.1197 4.8280+-0.0353 might be 1.0128x faster bitops-3bit-bits-in-byte 1.7560+-0.0324 ? 1.7612+-0.0251 ? bitops-bits-in-byte 6.9756+-0.0483 6.9601+-0.0391 bitops-bitwise-and 2.8401+-0.0518 ? 2.8412+-0.0356 ? bitops-nsieve-bits 4.6140+-0.0387 4.5755+-0.0491 controlflow-recursive 3.0193+-0.0787 2.9963+-0.0368 crypto-aes 5.5186+-0.0307 ? 5.5481+-0.0518 ? crypto-md5 3.2990+-0.0748 3.2717+-0.0914 crypto-sha1 2.9863+-0.0382 ? 3.0338+-0.0357 ? might be 1.0159x slower date-format-tofte 11.6685+-0.1107 ^ 11.4974+-0.0552 ^ definitely 1.0149x faster date-format-xparb 8.6879+-0.0626 ! 9.0309+-0.0636 ! definitely 1.0395x slower math-cordic 4.0663+-0.0904 4.0382+-0.0284 math-partial-sums 9.9556+-0.0293 9.9452+-0.0210 math-spectral-norm 2.7280+-0.0337 2.7000+-0.0314 might be 1.0104x faster regexp-dna 12.1170+-0.0562 12.0134+-0.0763 string-base64 5.9193+-0.0930 5.8556+-0.0340 might be 1.0109x faster string-fasta 11.0886+-0.0610 ? 11.1853+-0.0770 ? string-tagcloud 15.1097+-0.0622 ? 15.2284+-0.0924 ? string-unpack-code 32.5693+-0.1403 ! 34.5430+-0.1676 ! definitely 1.0606x slower string-validate-input 8.6700+-0.0732 ? 8.7621+-0.0611 ? might be 1.0106x slower <arithmetic> * 7.6359+-0.0181 ! 7.7240+-0.0167 ! definitely 1.0115x slower <geometric> 6.0550+-0.0167 ? 6.0731+-0.0092 ? might be 1.0030x slower <harmonic> 4.9121+-0.0171 4.9120+-0.0102 might be 1.0000x faster TipOfTree CopySymTab LongSpider: 3d-cube 3163.3048+-10.4598 ? 3167.4078+-12.0696 ? 3d-morph 1499.1498+-0.8027 ? 1499.2891+-1.1862 ? 3d-raytrace 1415.5530+-29.3844 ? 1428.5249+-45.5619 ? access-binary-trees 2076.2958+-12.5094 2066.8678+-7.5504 access-fannkuch 656.5873+-0.8561 ? 660.3390+-8.1247 ? access-nbody 1492.9911+-0.5004 1492.5979+-0.4242 access-nsieve 1562.4264+-2.5293 1561.3381+-2.3062 bitops-3bit-bits-in-byte 121.3141+-0.2592 121.2023+-0.0499 bitops-bits-in-byte 637.4520+-0.7385 635.7387+-2.5227 bitops-nsieve-bits 1052.3669+-1.3682 1051.5100+-1.6446 controlflow-recursive 1488.3803+-0.5117 ? 1488.5589+-0.4842 ? crypto-aes 1679.2686+-11.0581 ? 1700.1717+-22.5135 ? might be 1.0124x slower crypto-md5 1202.5008+-1.9613 ? 1205.3556+-2.9750 ? crypto-sha1 1620.7755+-6.3372 1615.9298+-4.5004 date-format-tofte 1174.5745+-7.0943 1159.6579+-7.9680 might be 1.0129x faster date-format-xparb 1449.2330+-6.6377 ! 1476.4018+-14.3947 ! definitely 1.0187x slower math-cordic 1736.7853+-4.0600 ? 1737.4302+-5.5957 ? math-partial-sums 1309.8274+-1.8065 1309.6807+-1.5825 math-spectral-norm 1825.9060+-0.5555 ? 1826.3518+-0.6073 ? string-base64 552.5749+-2.4171 ? 552.7570+-2.5658 ? string-fasta 1030.2508+-3.9554 ? 1033.7117+-8.2850 ? string-tagcloud 383.0047+-2.2608 ? 385.3434+-1.8925 ? <arithmetic> 1324.1147+-1.5985 ? 1326.1894+-2.5364 ? might be 1.0016x slower <geometric> * 1123.8131+-1.3981 ? 1125.5207+-1.8979 ? might be 1.0015x slower <harmonic> 805.7831+-1.0011 ? 806.6112+-0.7645 ? might be 1.0010x slower TipOfTree CopySymTab V8Spider: crypto 80.3656+-0.6040 80.2354+-0.1638 deltablue 99.0496+-0.7810 98.1502+-0.3404 earley-boyer 71.2819+-0.2607 71.2644+-0.3041 raytrace 40.3466+-0.2649 ? 40.4670+-0.2174 ? regexp 100.3777+-0.5072 ? 100.5276+-0.2849 ? richards 132.1542+-1.8675 ? 133.3634+-1.5431 ? splay 61.1324+-0.4267 ? 61.3663+-0.4810 ? <arithmetic> 83.5297+-0.2980 ? 83.6249+-0.2106 ? might be 1.0011x slower <geometric> * 78.6153+-0.2295 ? 78.6888+-0.1476 ? might be 1.0009x slower <harmonic> 73.4923+-0.2109 ? 73.5743+-0.1531 ? might be 1.0011x slower TipOfTree CopySymTab Octane and V8v7: encrypt 0.46527+-0.00031 ? 0.46529+-0.00028 ? decrypt 8.51643+-0.00684 ? 8.52838+-0.01380 ? deltablue x2 0.56635+-0.00915 0.55979+-0.00300 might be 1.0117x faster earley 0.85490+-0.00576 0.84777+-0.00532 boyer 12.34800+-0.04375 12.32608+-0.03345 raytrace x2 4.22581+-0.03233 4.20855+-0.02150 regexp x2 33.54881+-0.17468 ? 33.63733+-0.09696 ? richards x2 0.42879+-0.00778 0.42762+-0.00783 splay x2 0.62843+-0.00282 0.62727+-0.00294 navier-stokes x2 10.96792+-0.13405 10.91165+-0.01019 closure 0.41699+-0.00067 ! 0.42429+-0.00583 ! definitely 1.0175x slower jquery 5.90088+-0.01612 ! 6.02729+-0.01041 ! definitely 1.0214x slower gbemu x2 72.16264+-0.45534 ? 72.29663+-0.93132 ? mandreel x2 143.10910+-1.41093 143.00983+-1.47943 pdfjs x2 100.88032+-0.23950 100.72142+-0.41721 box2d x2 35.25772+-0.28035 34.95239+-0.11812 V8v7: <arithmetic> 7.68230+-0.03115 7.68200+-0.01123 might be 1.0000x faster <geometric> * 2.50160+-0.00802 2.49321+-0.00473 might be 1.0034x faster <harmonic> 1.02468+-0.00540 1.02003+-0.00483 might be 1.0046x faster Octane including V8v7: <arithmetic> 32.00209+-0.12895 31.97400+-0.10841 might be 1.0009x faster <geometric> * 6.95050+-0.01373 6.94151+-0.01041 might be 1.0013x faster <harmonic> 1.42072+-0.00629 1.41858+-0.00612 might be 1.0015x faster TipOfTree CopySymTab Kraken: ai-astar 492.328+-0.696 ? 492.582+-0.369 ? audio-beat-detection 249.670+-0.952 249.039+-1.807 audio-dft 296.448+-1.378 296.179+-1.647 audio-fft 149.029+-0.362 148.708+-0.313 audio-oscillator 248.604+-0.424 ? 249.656+-1.998 ? imaging-darkroom 297.815+-0.974 296.457+-0.560 imaging-desaturate 159.906+-0.318 159.856+-0.174 imaging-gaussian-blur 360.332+-0.190 ? 360.390+-0.209 ? json-parse-financial 80.250+-0.266 80.229+-0.200 json-stringify-tinderbox 106.285+-0.280 ? 106.674+-0.239 ? stanford-crypto-aes 108.516+-1.129 106.932+-1.158 might be 1.0148x faster stanford-crypto-ccm 122.704+-1.652 ? 123.081+-1.318 ? stanford-crypto-pbkdf2 268.926+-1.259 268.189+-1.349 stanford-crypto-sha256-iterative 128.429+-1.936 ? 128.701+-0.393 ? <arithmetic> * 219.232+-0.292 219.048+-0.190 might be 1.0008x faster <geometric> 191.748+-0.392 191.552+-0.229 might be 1.0010x faster <harmonic> 168.117+-0.503 167.918+-0.295 might be 1.0012x faster TipOfTree CopySymTab JSBench: amazon 9.9000+-0.2262 ? 10.2000+-0.3016 ? might be 1.0303x slower facebook 37.7000+-0.3456 ! 38.6000+-0.3694 ! definitely 1.0239x slower google 66.5000+-0.3770 ? 67.1000+-0.2262 ? twitter 9.8000+-0.3016 ? 9.9000+-0.2262 ? might be 1.0102x slower yahoo 3.6000+-0.3694 ? 3.8000+-0.3016 ? might be 1.0556x slower <arithmetic> * 25.5000+-0.1216 ! 25.9200+-0.1382 ! definitely 1.0165x slower <geometric> 15.4053+-0.3278 ? 15.8094+-0.2627 ? might be 1.0262x slower <harmonic> 9.5200+-0.5352 ? 9.9022+-0.4307 ? might be 1.0402x slower TipOfTree CopySymTab JSRegress: adapt-to-double-divide 22.5497+-0.0422 ? 22.5903+-0.1213 ? aliased-arguments-getbyval 0.9755+-0.0081 ? 1.0255+-0.0637 ? might be 1.0513x slower allocate-big-object 2.6734+-0.0115 ? 2.7001+-0.0723 ? arity-mismatch-inlining 0.8819+-0.0250 ? 0.8832+-0.0224 ? array-access-polymorphic-structure 9.5171+-0.0339 ? 9.5763+-0.0428 ? array-nonarray-polymorhpic-access 74.6136+-41.5616 56.1873+-0.1066 might be 1.3279x faster array-with-double-add 5.1680+-0.0334 5.1492+-0.0325 array-with-double-increment 4.1083+-0.0199 4.0994+-0.0176 array-with-double-mul-add 7.5356+-0.0534 ? 7.6016+-0.0486 ? array-with-double-sum 7.8224+-0.0191 ? 7.8234+-0.0147 ? array-with-int32-add-sub 9.1984+-0.0156 ? 9.2179+-0.0453 ? array-with-int32-or-double-sum 7.9365+-0.1426 7.8784+-0.0464 ArrayBuffer-DataView-alloc-large-long-lived 128.2238+-1.0471 126.8755+-0.5237 might be 1.0106x faster ArrayBuffer-DataView-alloc-long-lived 34.5479+-0.7456 ^ 33.2532+-0.3849 ^ definitely 1.0389x faster ArrayBuffer-Int32Array-byteOffset 6.7865+-0.0204 ? 6.8032+-0.0316 ? ArrayBuffer-Int8Array-alloc-huge-long-lived 218.6512+-1.9908 ? 220.8115+-5.1046 ? ArrayBuffer-Int8Array-alloc-large-long-lived-fragmented 168.9319+-1.1992 ! 171.6374+-1.0350 ! definitely 1.0160x slower ArrayBuffer-Int8Array-alloc-large-long-lived 128.0216+-2.2858 ? 129.5361+-1.3976 ? might be 1.0118x slower ArrayBuffer-Int8Array-alloc-long-lived-buffer 58.6921+-1.6347 ? 60.2449+-0.7722 ? might be 1.0265x slower ArrayBuffer-Int8Array-alloc-long-lived 31.7542+-0.9470 ? 32.4116+-0.1609 ? might be 1.0207x slower ArrayBuffer-Int8Array-alloc 28.5493+-0.9384 28.0873+-0.0707 might be 1.0164x faster asmjs_bool_bug 9.9547+-0.0518 9.9497+-0.0433 basic-set 22.9865+-0.1277 22.9649+-0.0885 big-int-mul 5.4026+-0.0080 ? 5.4194+-0.0213 ? boolean-test 4.2464+-0.0218 4.2295+-0.0209 branch-fold 4.8106+-0.0265 ? 4.8161+-0.0185 ? cast-int-to-double 12.1876+-0.0320 ? 12.1909+-0.0399 ? cell-argument 14.9875+-0.2932 14.8129+-0.0263 might be 1.0118x faster cfg-simplify 3.7766+-0.0172 ? 3.7953+-0.0210 ? cmpeq-obj-to-obj-other 12.9108+-0.5486 12.4651+-0.4545 might be 1.0358x faster constant-test 8.6199+-0.0242 ? 8.6947+-0.0946 ? DataView-custom-properties 138.2530+-0.8094 ? 138.4805+-1.2398 ? delay-tear-off-arguments-strictmode 3.4110+-0.0365 3.4046+-0.0313 destructuring-arguments-length 184.4006+-0.6599 ! 189.2350+-2.1847 ! definitely 1.0262x slower destructuring-arguments 8.5262+-0.0953 8.4349+-0.0287 might be 1.0108x faster destructuring-swap 8.4513+-0.0442 8.4401+-0.0250 direct-arguments-getbyval 0.8020+-0.0108 ? 0.8154+-0.0261 ? might be 1.0167x slower double-pollution-getbyval 10.8360+-0.0269 ? 10.8542+-0.0344 ? double-pollution-putbyoffset 5.7539+-0.0165 ? 5.7672+-0.0339 ? empty-string-plus-int 13.7122+-0.1859 ? 13.8592+-0.1553 ? might be 1.0107x slower emscripten-cube2hash 51.1825+-0.1596 ? 51.4449+-0.1478 ? emscripten-memops 9234.8956+-11.6046 ? 9238.7870+-9.2775 ? external-arguments-getbyval 2.7353+-0.0412 ? 2.7696+-0.0364 ? might be 1.0125x slower external-arguments-putbyval 3.4216+-0.1994 3.3607+-0.0454 might be 1.0181x faster Float32Array-matrix-mult 6.3198+-0.0341 ? 6.3425+-0.0332 ? Float32Array-to-Float64Array-set 95.8292+-0.9601 ^ 93.3478+-0.7487 ^ definitely 1.0266x faster Float64Array-alloc-long-lived 105.5240+-0.7327 105.4023+-0.5597 Float64Array-to-Int16Array-set 116.6500+-2.1606 ? 118.7598+-2.2329 ? might be 1.0181x slower fold-double-to-int 25.5334+-0.3925 25.3051+-0.0761 for-of-iterate-array-entries 8.5992+-0.3694 8.4991+-0.0882 might be 1.0118x faster for-of-iterate-array-keys 3.4502+-0.0624 3.4212+-0.0338 for-of-iterate-array-values 3.0270+-0.0330 ? 3.0678+-0.0584 ? might be 1.0135x slower function-dot-apply 3.0528+-0.0188 3.0323+-0.0206 function-test 4.6338+-0.0595 ? 4.6494+-0.0541 ? get-by-id-chain-from-try-block 7.3626+-0.0218 ? 7.3773+-0.0309 ? get-by-id-proto-or-self 23.2092+-0.3662 23.1267+-0.3826 get-by-id-self-or-proto 23.7000+-0.6816 ? 23.9730+-0.7618 ? might be 1.0115x slower get_callee_monomorphic 4.9460+-0.0256 ? 4.9663+-0.0475 ? get_callee_polymorphic 4.4808+-0.0242 ? 4.4876+-0.0254 ? global-var-const-infer-fire-from-opt 0.3087+-0.0021 0.3080+-0.0026 global-var-const-infer 0.3020+-0.0027 ? 0.3035+-0.0034 ? HashMap-put-get-iterate-keys 47.4519+-0.4205 ^ 46.7971+-0.1048 ^ definitely 1.0140x faster HashMap-put-get-iterate 65.6408+-1.6657 65.2148+-0.5435 HashMap-string-put-get-iterate 70.4797+-0.7089 ? 71.3773+-0.5965 ? might be 1.0127x slower imul-double-only 17.5679+-0.2736 17.4482+-0.0172 imul-int-only 14.8319+-0.2258 ? 14.8396+-0.2496 ? imul-mixed 21.9489+-0.0178 ? 22.8053+-1.0778 ? might be 1.0390x slower in-four-cases 25.6527+-0.0272 ? 25.6642+-0.0310 ? in-one-case-false 11.7881+-0.0294 11.7805+-0.0237 in-one-case-true 11.7917+-0.0253 11.7822+-0.0143 in-two-cases 12.5920+-0.0295 12.5698+-0.0243 indexed-properties-in-objects 4.2068+-0.0176 ? 4.2427+-0.0430 ? inline-arguments-access 1.4896+-0.0212 ? 1.4969+-0.0178 ? inline-arguments-local-escape 26.9418+-0.3386 ! 28.1169+-0.2338 ! definitely 1.0436x slower inline-get-scoped-var 6.7866+-0.0685 ? 6.8302+-0.1107 ? inlined-put-by-id-transition 14.7611+-0.2668 ? 14.9250+-0.2768 ? might be 1.0111x slower int-or-other-abs-then-get-by-val 9.1332+-0.0609 ? 9.2563+-0.3546 ? might be 1.0135x slower int-or-other-abs-zero-then-get-by-val 37.2931+-0.1245 37.2454+-0.0214 int-or-other-add-then-get-by-val 9.4198+-0.0118 ? 9.4313+-0.0200 ? int-or-other-add 10.7794+-0.0386 ? 10.7885+-0.0336 ? int-or-other-div-then-get-by-val 6.0820+-0.0145 6.0602+-0.0294 int-or-other-max-then-get-by-val 8.6178+-0.2150 8.5839+-0.2385 int-or-other-min-then-get-by-val 6.8670+-0.0248 ? 6.8809+-0.0248 ? int-or-other-mod-then-get-by-val 5.8889+-0.0270 5.8759+-0.0196 int-or-other-mul-then-get-by-val 6.1913+-0.0281 6.1800+-0.0206 int-or-other-neg-then-get-by-val 7.5939+-0.0290 7.5750+-0.0408 int-or-other-neg-zero-then-get-by-val 36.8920+-0.2539 36.6681+-0.0570 int-or-other-sub-then-get-by-val 9.8877+-0.0263 ? 9.9678+-0.1688 ? int-or-other-sub 7.7821+-0.0217 ? 7.8096+-0.0566 ? int-overflow-local 6.4090+-0.0193 6.4038+-0.0230 Int16Array-alloc-long-lived 69.4667+-0.3954 ? 69.7511+-0.3358 ? Int16Array-bubble-sort-with-byteLength 48.9099+-0.0506 48.9094+-0.0461 Int16Array-bubble-sort 48.1848+-0.0403 ? 48.2407+-0.0519 ? Int16Array-load-int-mul 2.0049+-0.0194 ? 2.0247+-0.0202 ? Int16Array-to-Int32Array-set 89.4969+-1.1445 ! 94.4733+-0.5798 ! definitely 1.0556x slower Int32Array-alloc-huge-long-lived 744.1809+-5.1624 741.6289+-3.3895 Int32Array-alloc-huge 810.6779+-8.6046 ? 815.0293+-7.9266 ? Int32Array-alloc-large-long-lived 987.3704+-10.1308 979.6083+-10.3426 Int32Array-alloc-large 46.9735+-0.9652 45.7554+-0.9717 might be 1.0266x faster Int32Array-alloc-long-lived 83.8530+-0.4440 ? 84.0369+-0.4210 ? Int32Array-alloc 4.2585+-0.0146 4.2548+-0.0121 Int32Array-Int8Array-view-alloc 17.7953+-0.7253 ? 18.4239+-0.7586 ? might be 1.0353x slower int52-spill 0.3008+-0.0040 ? 0.3024+-0.0026 ? Int8Array-alloc-long-lived 67.1345+-1.0053 66.6984+-0.4596 Int8Array-load-with-byteLength 4.8479+-0.0154 ? 4.8620+-0.0261 ? Int8Array-load 4.8573+-0.0155 ? 4.8819+-0.0206 ? integer-divide 15.4304+-0.0297 15.4259+-0.0249 integer-modulo 2.0247+-0.0100 ! 2.0636+-0.0235 ! definitely 1.0192x slower large-int-captured 9.5566+-0.1915 9.2474+-0.1203 might be 1.0334x faster large-int-neg 25.7087+-0.1624 ? 25.7302+-0.0639 ? large-int 23.1025+-0.0494 ? 23.1030+-0.0322 ? lots-of-fields 10.6307+-0.0243 ? 10.6389+-0.0455 ? make-indexed-storage 4.3704+-0.1456 4.2723+-0.1808 might be 1.0230x faster make-rope-cse 19.6437+-0.0903 ? 19.6979+-0.0778 ? marsaglia-larger-ints 119.1050+-0.2419 ? 119.2406+-0.1593 ? marsaglia-osr-entry 52.3544+-0.0464 ? 52.4040+-0.0367 ? marsaglia 519.5094+-0.3283 519.3826+-0.1995 method-on-number 29.7059+-0.2919 ? 30.3301+-0.6029 ? might be 1.0210x slower negative-zero-divide 0.3434+-0.0115 0.3432+-0.0061 negative-zero-modulo 0.3288+-0.0248 ? 0.3453+-0.0352 ? might be 1.0502x slower negative-zero-negate 0.2955+-0.0021 ! 0.3085+-0.0062 ! definitely 1.0441x slower nested-function-parsing-random 387.9314+-0.4946 ! 402.0065+-0.4702 ! definitely 1.0363x slower nested-function-parsing 53.8999+-0.2210 ! 61.1497+-0.2527 ! definitely 1.1345x slower new-array-buffer-dead 3.9061+-0.0642 ? 3.9253+-0.1082 ? new-array-buffer-push 10.2227+-0.0515 10.2215+-0.0491 new-array-dead 28.3864+-0.0824 ? 28.3870+-0.0634 ? new-array-push 9.7466+-0.0519 9.7119+-0.0690 number-test 4.1497+-0.0281 ? 4.1588+-0.0262 ? object-closure-call 13.0393+-0.0308 ? 13.0684+-0.0691 ? object-test 4.5786+-0.0434 4.5756+-0.0432 poly-stricteq 79.6041+-0.1523 ? 79.7262+-0.1494 ? polymorphic-structure 21.0809+-0.0818 21.0623+-0.0529 polyvariant-monomorphic-get-by-id 11.7138+-0.0311 ? 11.7518+-0.0908 ? put-by-id 21.0515+-0.2403 20.8029+-0.3101 might be 1.0120x faster put-by-val-large-index-blank-indexing-type 20.2272+-0.1092 ? 20.2820+-0.1392 ? rare-osr-exit-on-local 20.0568+-0.0411 ? 20.0901+-0.0543 ? register-pressure-from-osr 31.9522+-0.0250 ? 31.9793+-0.0589 ? simple-activation-demo 34.9491+-0.0276 34.9469+-0.0466 slow-array-profile-convergence 4.1281+-0.0672 ? 4.2677+-0.2106 ? might be 1.0338x slower slow-convergence 3.4539+-0.0755 3.4493+-0.0337 sparse-conditional 1.3048+-0.0220 ? 1.3139+-0.0160 ? splice-to-remove 77.2058+-0.1317 ^ 76.5333+-0.1017 ^ definitely 1.0088x faster stepanov_container 11609.5895+-34.4301 ? 11611.4772+-15.4163 ? string-concat-object 3.5705+-0.0296 3.5508+-0.0154 string-concat-pair-object 3.4836+-0.0214 ? 3.4918+-0.0169 ? string-concat-pair-simple 18.2351+-0.2349 17.9960+-0.2502 might be 1.0133x faster string-concat-simple 18.0152+-0.3720 ? 18.5244+-0.3338 ? might be 1.0283x slower string-cons-repeat 12.8127+-0.0935 12.7988+-0.0945 string-cons-tower 13.4130+-0.0501 13.3794+-0.1095 string-equality 43.6004+-0.5933 43.3769+-0.5491 string-get-by-val-big-char 17.5556+-0.1848 ? 17.8704+-0.1886 ? might be 1.0179x slower string-get-by-val-out-of-bounds-insane 5.4275+-0.0671 ? 5.5113+-0.1018 ? might be 1.0154x slower string-get-by-val-out-of-bounds 5.1024+-0.0219 ? 5.1060+-0.0182 ? string-get-by-val 4.6292+-0.0208 ? 4.6331+-0.0107 ? string-hash 2.7172+-0.1536 2.6993+-0.0232 string-long-ident-equality 38.3026+-0.5419 ? 38.4368+-0.7186 ? string-repeat-arith 48.0861+-0.2307 ? 48.6155+-0.8457 ? might be 1.0110x slower string-sub 97.9133+-0.8659 ? 97.9478+-0.5680 ? string-test 4.1169+-0.0304 ? 4.1451+-0.0458 ? string-var-equality 69.5435+-0.3671 69.5277+-0.5475 structure-hoist-over-transitions 3.4391+-0.0058 ? 3.4428+-0.0232 ? switch-char-constant 3.3302+-0.0204 3.3253+-0.0245 switch-char 7.8919+-0.0360 7.8850+-0.0444 switch-constant 8.8657+-0.0221 ? 8.8880+-0.0275 ? switch-string-basic-big-var 19.8437+-0.0263 ? 19.8679+-0.0480 ? switch-string-basic-big 21.9830+-1.1520 21.6875+-0.4531 might be 1.0136x faster switch-string-basic-var 19.8513+-0.0621 ? 20.1049+-0.3916 ? might be 1.0128x slower switch-string-basic 19.8389+-0.3865 19.7457+-0.2894 switch-string-big-length-tower-var 29.4810+-0.0429 ? 29.6766+-0.3985 ? switch-string-length-tower-var 21.8071+-0.0295 21.8066+-0.0391 switch-string-length-tower 16.7263+-0.0356 ? 16.7267+-0.0381 ? switch-string-short 16.7434+-0.0334 16.7361+-0.0213 switch 13.2604+-0.0170 13.2526+-0.0108 tear-off-arguments-simple 2.4031+-0.0352 2.3378+-0.0472 might be 1.0279x faster tear-off-arguments 3.5736+-0.0356 3.5526+-0.0577 temporal-structure 16.7564+-0.0404 ? 16.8689+-0.2622 ? to-int32-boolean 22.0107+-0.0180 21.9853+-0.0319 undefined-test 4.3814+-0.0302 ? 4.3821+-0.0276 ? weird-inlining-const-prop 0.2983+-0.0023 ? 0.2988+-0.0020 ? <arithmetic> 160.0934+-0.3974 ? 160.2059+-0.1095 ? might be 1.0007x slower <geometric> * 13.6982+-0.0232 ? 13.7311+-0.0200 ? might be 1.0024x slower <harmonic> 3.8998+-0.0254 ? 3.9337+-0.0209 ? might be 1.0087x slower TipOfTree CopySymTab DSP: filtrr-posterize-tint 41.5118+-0.2149 41.3512+-0.1934 filtrr-tint-contrast-sat-bright 85.4813+-4.1802 76.6419+-7.1861 might be 1.1153x faster filtrr-tint-sat-adj-contr-mult 90.1000+-0.2875 ? 90.1613+-0.4379 ? filtrr-blur-overlay-sat-contr 238.4498+-1.1051 ? 240.8247+-4.9973 ? filtrr-sat-blur-mult-sharpen-contr 279.7981+-0.7668 ? 280.3562+-0.9006 ? filtrr-sepia-bias 30.1972+-0.1004 30.1031+-0.0934 route9-vp8 x5 1063.4795+-3.5601 1063.4621+-5.2365 starfield x5 1184.8081+-4.8916 1184.0426+-3.5907 bellard-jslinux x5 3070.1000+-7.6338 ? 3075.6000+-17.4745 ? zynaps-quake3 x5 1374.5193+-7.5632 ? 1375.4590+-13.1631 ? zynaps-mandelbrot x5 1095.5323+-0.6028 1095.0686+-0.9659 ammojs-asm-js x5 234.0510+-3.8694 232.8665+-5.2678 ammojs-regular-js x5 219.7798+-3.8729 218.2071+-5.2223 <arithmetic> 1023.8265+-1.4907 ? 1023.9748+-2.8482 ? might be 1.0001x slower <geometric> * 609.7028+-1.9988 607.2483+-3.2378 might be 1.0040x faster <harmonic> 272.0449+-1.6466 268.6502+-2.6759 might be 1.0126x faster TipOfTree CopySymTab All benchmarks: <arithmetic> 326.8005+-0.3324 ? 327.0306+-0.3488 ? might be 1.0007x slower <geometric> 31.2067+-0.0417 ? 31.2519+-0.0204 ? might be 1.0015x slower <harmonic> 4.5467+-0.0189 ? 4.5719+-0.0162 ? might be 1.0055x slower TipOfTree CopySymTab Geomean of preferred means: <scaled-result> 62.0205+-0.0684 ! 62.2261+-0.0620 ! definitely 1.0033x slower
Filip Pizlo
Comment 6
2013-11-26 10:51:35 PST
Created
attachment 217888
[details]
the patch Only clone if there are captured variables. This reduces the performance regression somewhat. It's now: TipOfTree CopySymTab 3d-cube 7.6940+-0.1180 ? 7.7232+-0.0728 ? 3d-morph 8.7795+-0.0635 ? 8.8311+-0.1250 ? 3d-raytrace 8.7119+-0.1335 ? 8.8288+-0.2167 ? might be 1.0134x slower access-binary-trees 2.0083+-0.0133 ? 2.0196+-0.0276 ? access-fannkuch 8.0129+-0.0911 7.9998+-0.1229 access-nbody 4.2382+-0.0206 ? 4.2444+-0.0336 ? access-nsieve 5.0547+-0.0857 4.9899+-0.0222 might be 1.0130x faster bitops-3bit-bits-in-byte 1.8088+-0.0129 ? 1.8133+-0.0222 ? bitops-bits-in-byte 7.2445+-0.0806 ? 7.3056+-0.0453 ? bitops-bitwise-and 2.9078+-0.0500 ? 2.9387+-0.0273 ? might be 1.0106x slower bitops-nsieve-bits 4.6024+-0.0274 4.5913+-0.0420 controlflow-recursive 3.1233+-0.0085 3.1199+-0.0145 crypto-aes 5.4176+-0.0225 ? 5.4183+-0.0173 ? crypto-md5 3.1177+-0.0592 3.0905+-0.0303 crypto-sha1 2.9851+-0.0929 2.9395+-0.0064 might be 1.0155x faster date-format-tofte 11.2551+-0.1257 11.1915+-0.1051 date-format-xparb 8.6007+-0.1150 ? 8.6161+-0.1689 ? math-cordic 4.2095+-0.0121 ? 4.2652+-0.0948 ? might be 1.0132x slower math-partial-sums 10.2620+-0.1227 ? 10.2844+-0.1139 ? math-spectral-norm 2.7493+-0.0659 2.7211+-0.0073 might be 1.0104x faster regexp-dna 12.8357+-0.0775 ? 12.9096+-0.0793 ? string-base64 5.4462+-0.0282 ? 5.4549+-0.0201 ? string-fasta 10.1331+-0.1146 ? 10.1621+-0.1004 ? string-tagcloud 14.8699+-0.1560 14.8458+-0.1224 string-unpack-code 30.0857+-0.1233 ! 31.7528+-0.1392 ! definitely 1.0554x slower string-validate-input 6.9770+-0.1305 6.9281+-0.0891 <arithmetic> * 7.4281+-0.0138 ! 7.4994+-0.0130 ! definitely 1.0096x slower <geometric> 5.9576+-0.0111 ? 5.9730+-0.0099 ? might be 1.0026x slower <harmonic> 4.8713+-0.0131 ? 4.8730+-0.0123 ? might be 1.0004x slower
Oliver Hunt
Comment 7
2013-11-26 11:03:40 PST
Comment on
attachment 217888
[details]
the patch View in context:
https://bugs.webkit.org/attachment.cgi?id=217888&action=review
> Source/JavaScriptCore/bytecode/CodeBlock.cpp:1535 > + if (codeType() == FunctionCode && symbolTable->captureCount())
What happens if we're hitting the cached code block for global/eval code? You surely don't want to share watchpoints over global code?
Filip Pizlo
Comment 8
2013-11-26 11:11:42 PST
Comment on
attachment 217888
[details]
the patch View in context:
https://bugs.webkit.org/attachment.cgi?id=217888&action=review
>> Source/JavaScriptCore/bytecode/CodeBlock.cpp:1535 >> + if (codeType() == FunctionCode && symbolTable->captureCount()) > > What happens if we're hitting the cached code block for global/eval code? You surely don't want to share watchpoints over global code?
So, global code doesn't have a SymbolTable in UnlinkedCodeBlock. That SymbolTable is part of JSGlobalObject! And I think I just don't want to do constant inference for eval variables. I don't believe that the machinery I have for constant inference would even work for those. Those get sort of added dynamically using a put_to_scope. So, global variable constant inference currently already just works even with caching since each new JSGlobalObject gets a fresh symbol table. I don't care about eval's. That leaves functions!
Oliver Hunt
Comment 9
2013-11-26 11:13:53 PST
(In reply to
comment #8
)
> (From update of
attachment 217888
[details]
) > View in context:
https://bugs.webkit.org/attachment.cgi?id=217888&action=review
> > >> Source/JavaScriptCore/bytecode/CodeBlock.cpp:1535 > >> + if (codeType() == FunctionCode && symbolTable->captureCount()) > > > > What happens if we're hitting the cached code block for global/eval code? You surely don't want to share watchpoints over global code? > > So, global code doesn't have a SymbolTable in UnlinkedCodeBlock. That SymbolTable is part of JSGlobalObject! >
Oh right, duh.
Filip Pizlo
Comment 10
2013-11-26 17:19:54 PST
Landed in
http://trac.webkit.org/changeset/159795
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug