<html>
<head>
<base href="https://bugs.webkit.org/" />
</head>
<body>
<p>
<div>
<b><a class="bz_bug_link
bz_status_RESOLVED bz_closed"
title="RESOLVED FIXED - [JSC] implement async functions proposal"
href="https://bugs.webkit.org/show_bug.cgi?id=156147#c114">Comment # 114</a>
on <a class="bz_bug_link
bz_status_RESOLVED bz_closed"
title="RESOLVED FIXED - [JSC] implement async functions proposal"
href="https://bugs.webkit.org/show_bug.cgi?id=156147">bug 156147</a>
from <span class="vcard"><a class="email" href="mailto:caitp@igalia.com" title="Caitlin Potter (:caitp) <caitp@igalia.com>"> <span class="fn">Caitlin Potter (:caitp)</span></a>
</span></b>
<pre>I tried a version with 2 changes:
`m_runtimeFlags` replaced with a single bool member, and flipping the order of operations (check if identifier === "async" before testing the flag), the results are not promising:
```
Benchmark report for Octane on EchoBeach (MacBookPro11,5).
VMs tested:
"BeforePatch" at /Users/caitp/git/WebKit/OldBuild/jsc
"AfterPatch" at /Users/caitp/git/WebKit/WebKitBuild/Release/jsc
Collected 100 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.
BeforePatch AfterPatch
closure 0.73573+-0.02948 ? 0.73754+-0.02989 ?
jquery 6.68742+-0.05906 ? 6.81852+-0.07467 ? might be 1.0196x slower
<geometric> 2.20728+-0.04715 ? 2.23115+-0.04883 ? might be 1.0108x slower
```
---
Later in the day, I also tried a version which tokenizes "async" as a keyword, which also does not seem to do any better.
```
Benchmark report for Octane on EchoBeach (MacBookPro11,5).
VMs tested:
"BeforePatch" at /Users/caitp/git/WebKit/OldBuild/jsc
"AfterPatch" at /Users/caitp/git/WebKit/WebKitBuild/Release/jsc
Collected 100 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.
BeforePatch AfterPatch
closure 0.73735+-0.02782 ? 0.75599+-0.03035 ? might be 1.0253x slower
jquery 6.95187+-0.05463 ? 7.07144+-0.07175 ? might be 1.0172x slower
<geometric> 2.25410+-0.04529 ? 2.30019+-0.04900 ? might be 1.0204x slower
```
And another one with fewer VM runs,
```
Benchmark report for Octane on EchoBeach (MacBookPro11,5).
VMs tested:
"BeforePatch" at /Users/caitp/git/WebKit/OldBuild/jsc
"AfterPatch" at /Users/caitp/git/WebKit/WebKitBuild/Release/jsc
Collected 40 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.
BeforePatch AfterPatch
closure 0.73733+-0.04519 0.73413+-0.04667
jquery 6.86110+-0.07219 ? 6.87968+-0.06205 ?
<geometric> 2.23916+-0.07172 2.23714+-0.07551 might be 1.0009x faster
```
which does not really indicate any serious improvements.
One thing we could do in the short term is add a compile-time flag to the async/await stuff (since the runtime flag stuff is kind of not really configurable in a the browser anyway yet, there isn't much difference between them anyway).
I'll do more real profiling on monday to see what the biggest problems are</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are the assignee for the bug.</li>
</ul>
</body>
</html>