WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED WONTFIX
71650
DFG argument profiling should only be activated once code gets hot
https://bugs.webkit.org/show_bug.cgi?id=71650
Summary
DFG argument profiling should only be activated once code gets hot
Filip Pizlo
Reported
2011-11-06 22:05:30 PST
Some code blocks run too short for argument profiling to matter. We should only enable argument profiling once code gets sufficiently hot.
Attachments
work in progress
(31.26 KB, patch)
2011-11-07 15:04 PST
,
Filip Pizlo
no flags
Details
Formatted Diff
Diff
the patch
(34.73 KB, patch)
2011-11-07 22:02 PST
,
Filip Pizlo
no flags
Details
Formatted Diff
Diff
the patch
(33.76 KB, patch)
2011-11-07 22:09 PST
,
Filip Pizlo
no flags
Details
Formatted Diff
Diff
Show Obsolete
(2)
View All
Add attachment
proposed patch, testcase, etc.
Filip Pizlo
Comment 1
2011-11-07 15:04:26 PST
Created
attachment 113935
[details]
work in progress
Filip Pizlo
Comment 2
2011-11-07 15:05:02 PST
This patch is not a clear win. Will investigate a bit further, but I'm considering closing without fixing.
Filip Pizlo
Comment 3
2011-11-07 20:08:09 PST
Did some more work, and it appears to be a win for page load. Playing around with it a bit more, but I think this thing is worth landing. It also doesn't adversely affect the standard benchmarks. Here's the performance on two different kinds of hardware. Benchmark report for SunSpider, V8, and Kraken on nitroflex.local (MacBookPro8,2). VMs tested: "TipOfTree" at /Volumes/Data/pizlo/quinary/OpenSource/WebKitBuild/Release/jsc (
r99516
) "ValueProfLight" at /Volumes/Data/pizlo/senary/OpenSource/WebKitBuild/Release/jsc (
r99516
) Collected 12 samples per benchmark/VM, with 4 VM invocations per benchmark. Emitted a call to gc() between sample measurements. Used 1 benchmark iteration per VM invocation for warm-up. Used the jsc-specific preciseTime() function to get microsecond-level timing. Reporting benchmark execution times with 95% confidence intervals in milliseconds. TipOfTree ValueProfLight SunSpider: 3d-cube 7.2304+-0.1731 ? 7.2564+-0.1386 ? 3d-morph 7.4582+-0.0915 ? 7.4966+-0.1286 ? 3d-raytrace 7.7481+-0.1305 7.6149+-0.1324 might be 1.0175x faster access-binary-trees 1.6406+-0.0471 1.6102+-0.0582 might be 1.0189x faster access-fannkuch 6.4688+-0.1215 6.4676+-0.1043 access-nbody 3.7328+-0.1477 ? 3.7692+-0.1055 ? access-nsieve 2.6139+-0.0610 ? 2.6891+-0.0754 ? might be 1.0288x slower bitops-3bit-bits-in-byte 1.3106+-0.0239 ? 1.3151+-0.0156 ? bitops-bits-in-byte 2.3647+-0.0521 ? 2.4284+-0.0684 ? might be 1.0269x slower bitops-bitwise-and 3.2559+-0.0765 3.2366+-0.0710 bitops-nsieve-bits 5.3216+-0.1304 ? 5.3441+-0.1130 ? controlflow-recursive 2.1311+-0.0371 2.1270+-0.0561 crypto-aes 7.9343+-0.1973 7.9052+-0.2799 crypto-md5 2.5932+-0.0701 ? 2.6134+-0.0530 ? crypto-sha1 2.4342+-0.0640 ? 2.4643+-0.1180 ? might be 1.0124x slower date-format-tofte 10.1530+-0.2708 ? 10.2356+-0.3027 ? date-format-xparb 9.5573+-0.2211 ^ 9.0603+-0.2304 ^ definitely 1.0549x faster math-cordic 6.4775+-0.1294 6.3919+-0.0936 might be 1.0134x faster math-partial-sums 7.5949+-0.1722 ? 7.9073+-0.4881 ? might be 1.0411x slower math-spectral-norm 2.5801+-0.0634 ? 2.6212+-0.0546 ? might be 1.0159x slower regexp-dna 11.6116+-0.2631 ? 11.6872+-0.2266 ? string-base64 4.1823+-0.1491 4.0680+-0.1552 might be 1.0281x faster string-fasta 6.4279+-0.1428 6.3788+-0.1404 string-tagcloud 11.9419+-0.3328 11.7197+-0.4272 might be 1.0190x faster string-unpack-code 21.1210+-0.3590 ? 21.1276+-0.5957 ? string-validate-input 5.0950+-0.0722 ? 5.2114+-0.0867 ? might be 1.0228x slower <arithmetic> * 6.1916+-0.0311 6.1826+-0.0561 <geometric> 4.9594+-0.0218 ? 4.9634+-0.0416 ? <harmonic> 3.9503+-0.0243 ? 3.9614+-0.0478 ? TipOfTree ValueProfLight V8: crypto 72.8888+-0.7654 72.7866+-0.8761 deltablue 164.9539+-1.4164 164.0539+-2.5844 earley-boyer 88.0223+-0.9300 ? 88.3923+-1.3018 ? raytrace 62.4079+-0.6167 61.7791+-1.1031 might be 1.0102x faster regexp 105.1340+-0.6417 104.8354+-1.2056 richards 124.2478+-0.9301 123.7775+-0.5580 splay 71.8906+-1.1361 ? 73.5871+-1.2935 ? might be 1.0236x slower <arithmetic> 98.5065+-0.3984 98.4588+-0.6440 <geometric> * 93.3951+-0.4173 ? 93.4398+-0.6286 ? <harmonic> 88.9991+-0.4380 ? 89.0937+-0.6635 ? TipOfTree ValueProfLight Kraken: ai-astar 491.0646+-7.4438 488.5014+-3.5650 audio-beat-detection 187.9569+-1.5960 ? 188.9246+-2.0744 ? audio-dft 265.8988+-4.5920 265.8597+-2.3995 audio-fft 124.3408+-1.1471 123.3499+-1.4393 audio-oscillator 250.4971+-1.1528 ? 251.6878+-2.2429 ? imaging-darkroom 298.8867+-4.1479 298.8029+-4.6689 imaging-desaturate 223.9861+-0.9883 ! 227.9079+-1.8077 ! definitely 1.0175x slower imaging-gaussian-blur 557.5609+-8.9002 550.4981+-5.0659 might be 1.0128x faster json-parse-financial 57.2818+-0.6776 56.6577+-0.2216 might be 1.0110x faster json-stringify-tinderbox 67.7372+-0.2714 ! 68.5644+-0.3343 ! definitely 1.0122x slower stanford-crypto-aes 97.0259+-1.6667 96.0273+-0.9699 might be 1.0104x faster stanford-crypto-ccm 100.1471+-0.7916 ? 100.7749+-0.8839 ? stanford-crypto-pbkdf2 191.4861+-3.2462 ? 193.5317+-1.2876 ? might be 1.0107x slower stanford-crypto-sha256-iterative 80.2285+-1.1339 79.1964+-0.2547 might be 1.0130x faster <arithmetic> * 213.8642+-0.8490 213.5918+-0.8801 <geometric> 169.7457+-0.4570 169.7065+-0.5197 <harmonic> 135.9450+-0.5409 135.7753+-0.3207 TipOfTree ValueProfLight All benchmarks: <arithmetic> 81.8005+-0.2443 81.7073+-0.2494 <geometric> 21.9964+-0.0670 ? 22.0057+-0.1087 ? <harmonic> 6.9492+-0.0418 ? 6.9681+-0.0822 ? TipOfTree ValueProfLight Geomean of preferred means: <scaled-result> 49.8212+-0.1243 49.7827+-0.1884 Benchmark report for SunSpider, V8, and Kraken on oldmac.local (MacPro4,1). VMs tested: "TipOfTree" at /Volumes/Data/pizlo/quinary/OpenSource/WebKitBuild/Release/jsc (
r99516
) "ValueProfLight" at /Volumes/Data/pizlo/senary/OpenSource/WebKitBuild/Release/jsc (
r99516
) Collected 12 samples per benchmark/VM, with 4 VM invocations per benchmark. Emitted a call to gc() between sample measurements. Used 1 benchmark iteration per VM invocation for warm-up. Used the jsc-specific preciseTime() function to get microsecond-level timing. Reporting benchmark execution times with 95% confidence intervals in milliseconds. TipOfTree ValueProfLight SunSpider: 3d-cube 9.2870+-0.0345 ? 9.3119+-0.0347 ? 3d-morph 10.2349+-0.1418 ? 10.3739+-0.1736 ? might be 1.0136x slower 3d-raytrace 9.8469+-0.0760 ? 9.8849+-0.0844 ? access-binary-trees 2.0140+-0.0064 ! 2.0460+-0.0131 ! definitely 1.0159x slower access-fannkuch 9.4287+-0.0109 ! 9.4782+-0.0187 ! definitely 1.0052x slower access-nbody 5.4197+-0.0051 ? 5.4279+-0.0068 ? access-nsieve 3.7734+-0.0051 ! 3.7888+-0.0076 ! definitely 1.0041x slower bitops-3bit-bits-in-byte 1.5440+-0.0192 ? 1.5485+-0.0125 ? bitops-bits-in-byte 5.9799+-0.0443 ! 6.0824+-0.0360 ! definitely 1.0171x slower bitops-bitwise-and 4.0020+-0.0058 ^ 3.9938+-0.0021 ^ definitely 1.0021x faster bitops-nsieve-bits 6.8718+-0.0329 6.8514+-0.0415 controlflow-recursive 2.8411+-0.0201 ^ 2.7844+-0.0130 ^ definitely 1.0203x faster crypto-aes 9.7526+-0.0685 ? 9.8290+-0.0532 ? crypto-md5 3.3631+-0.0182 3.3572+-0.0072 crypto-sha1 3.0982+-0.0118 ? 3.0995+-0.0127 ? date-format-tofte 13.2199+-0.0821 ? 13.2593+-0.2331 ? date-format-xparb 12.3084+-0.2516 ? 12.4245+-0.0945 ? math-cordic 8.7913+-0.0949 ? 8.8077+-0.0155 ? math-partial-sums 12.7056+-0.0671 ? 12.7577+-0.0401 ? math-spectral-norm 3.4455+-0.0107 ? 3.4490+-0.0163 ? regexp-dna 16.5404+-0.1382 ? 16.5743+-0.2217 ? string-base64 5.0765+-0.0253 ? 5.1031+-0.0357 ? string-fasta 8.6102+-0.0090 ^ 8.5798+-0.0201 ^ definitely 1.0035x faster string-tagcloud 16.2442+-0.1298 16.1692+-0.1206 string-unpack-code 28.4490+-0.1292 28.4115+-0.1552 string-validate-input 6.8985+-0.0603 ? 6.9568+-0.0582 ? <arithmetic> * 8.4518+-0.0270 ? 8.4750+-0.0308 ? <geometric> 6.7634+-0.0200 ? 6.7826+-0.0196 ? <harmonic> 5.3069+-0.0176 ? 5.3202+-0.0143 ? TipOfTree ValueProfLight V8: crypto 97.5008+-0.2748 97.4425+-0.2852 deltablue 221.8210+-2.3938 ^ 217.0354+-0.7037 ^ definitely 1.0220x faster earley-boyer 131.2414+-1.4716 130.5087+-1.1246 raytrace 84.7087+-0.7870 ^ 82.8579+-0.2507 ^ definitely 1.0223x faster regexp 150.7451+-0.9596 149.6161+-0.5901 richards 172.0932+-0.8348 171.5090+-0.6829 splay 107.6565+-0.9108 ? 109.4856+-2.1024 ? might be 1.0170x slower <arithmetic> 137.9667+-0.3386 ^ 136.9222+-0.3101 ^ definitely 1.0076x faster <geometric> * 131.2569+-0.3779 ^ 130.4303+-0.3221 ^ definitely 1.0063x faster <harmonic> 125.1583+-0.4377 124.4265+-0.3321 TipOfTree ValueProfLight Kraken: ai-astar 896.2943+-0.3387 896.2844+-0.8711 audio-beat-detection 257.3205+-1.9541 255.1301+-0.8087 audio-dft 315.4480+-2.2374 315.2836+-2.3183 audio-fft 167.4601+-0.6950 ? 167.7626+-0.7827 ? audio-oscillator 352.5792+-1.2625 352.5778+-1.3673 imaging-darkroom 407.8628+-8.4575 ? 409.8914+-7.0841 ? imaging-desaturate 291.2592+-0.0634 291.2047+-0.0586 imaging-gaussian-blur 751.1046+-0.2562 750.9592+-0.1336 json-parse-financial 87.2852+-0.2184 ^ 86.5116+-0.1681 ^ definitely 1.0089x faster json-stringify-tinderbox 96.5795+-0.5232 ? 96.7310+-0.7166 ? stanford-crypto-aes 139.0079+-0.5436 ? 139.7928+-0.4772 ? stanford-crypto-ccm 137.9739+-0.5770 137.8845+-0.6332 stanford-crypto-pbkdf2 286.8972+-4.3538 285.9257+-2.8639 stanford-crypto-sha256-iterative 118.2990+-0.1630 ! 119.0997+-0.2469 ! definitely 1.0068x slower <arithmetic> * 307.5265+-0.9617 307.5028+-0.6792 <geometric> 239.9827+-0.6984 239.9576+-0.4946 <harmonic> 193.3875+-0.4159 193.3409+-0.3285 TipOfTree ValueProfLight All benchmarks: <arithmetic> 116.8273+-0.2810 116.6776+-0.2160 <geometric> 30.4575+-0.0615 ? 30.4755+-0.0521 ? <harmonic> 9.3484+-0.0305 ? 9.3705+-0.0246 ? TipOfTree ValueProfLight Geomean of preferred means: <scaled-result> 69.8739+-0.1317 69.7890+-0.1122
Filip Pizlo
Comment 4
2011-11-07 22:02:20 PST
Created
attachment 113988
[details]
the patch
Filip Pizlo
Comment 5
2011-11-07 22:04:37 PST
<
rdar://problem/10410959
>
WebKit Review Bot
Comment 6
2011-11-07 22:05:10 PST
Attachment 113988
[details]
did not pass style-queue: Failed to run "['Tools/Scripts/check-webkit-style', '--diff-files', u'Source/JavaScriptCore/ChangeLog', u'Source..." exit_code: 1 Source/JavaScriptCore/jit/JITInlineMethods.h:471: Should have a space between // and comment [whitespace/comments] [4] Source/JavaScriptCore/jit/JIT.cpp:554: Should have a space between // and comment [whitespace/comments] [4] Total errors found: 2 in 12 files If any of these errors are false positives, please file a bug against check-webkit-style.
Filip Pizlo
Comment 7
2011-11-07 22:09:31 PST
Created
attachment 113989
[details]
the patch Fixed style, and some other goofs.
Oliver Hunt
Comment 8
2012-03-24 12:24:36 PDT
Is this patch still relevant?
Filip Pizlo
Comment 9
2012-03-24 13:11:35 PDT
(In reply to
comment #8
)
> Is this patch still relevant?
Nah.
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