<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[212129] trunk/PerformanceTests</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/212129">212129</a></dd>
<dt>Author</dt> <dd>fpizlo@apple.com</dd>
<dt>Date</dt> <dd>2017-02-10 11:49:55 -0800 (Fri, 10 Feb 2017)</dd>
</dl>

<h3>Log Message</h3>
<pre>Beef up the ARES-6 explainer text
https://bugs.webkit.org/show_bug.cgi?id=167867

Reviewed by Saam Barati.
        
Added appropriate links.

Added text that explains the subscores.

* ARES-6/index.html:</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkPerformanceTestsARES6indexhtml">trunk/PerformanceTests/ARES-6/index.html</a></li>
<li><a href="#trunkPerformanceTestsChangeLog">trunk/PerformanceTests/ChangeLog</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkPerformanceTestsARES6indexhtml"></a>
<div class="modfile"><h4>Modified: trunk/PerformanceTests/ARES-6/index.html (212128 => 212129)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/PerformanceTests/ARES-6/index.html        2017-02-10 19:26:36 UTC (rev 212128)
+++ trunk/PerformanceTests/ARES-6/index.html        2017-02-10 19:49:55 UTC (rev 212129)
</span><span class="lines">@@ -104,9 +104,13 @@
</span><span class="cx">         
</span><span class="cx">         &lt;p&gt;ARES-6 measures the execution time of JavaScript&amp;#8217;s newest features, including symbols, for-of, arrow functions, Map/Set/WeakMap, let/const, classes, proxies, string interpolation, destructuring, default arguments, spread, tail calls, and generators.&lt;/p&gt;
</span><span class="cx"> 
</span><del>-        &lt;p&gt;Air is an ES2015 port of the &lt;a href=&quot;https://webkit.org/blog/5852/introducing-the-b3-jit-compiler/&quot;&gt;WebKit B3 JIT&lt;/a&gt;&amp;#8217;s &lt;a href=&quot;https://trac.webkit.org/changeset/201783&quot;&gt;&lt;code&gt;Air::allocateStack&lt;/code&gt; phase&lt;/a&gt;. This code is a heavy user of Map, Set, classes, spread, and for-of. The benchmark runs &lt;code&gt;allocateStack&lt;/code&gt; on hot function bodies from other popular JavaScript benchmarks: &lt;code&gt;executeIteration&lt;/code&gt; from Octane/Gameboy, &lt;code&gt;gaussianBlur&lt;/code&gt; from Kraken, and &lt;code&gt;scanIdentifier&lt;/code&gt; from Octane/Typescript. Because metacircularity, the benchmark also runs &lt;code&gt;allocateStack&lt;/code&gt; on the largest hot function in Air.&lt;/p&gt;
</del><ins>+        &lt;p&gt;Air is an ES2015 port of the &lt;a href=&quot;https://webkit.org/blog/5852/introducing-the-b3-jit-compiler/&quot;&gt;WebKit B3 JIT&lt;/a&gt;&amp;#8217;s &lt;a href=&quot;https://trac.webkit.org/changeset/201783&quot;&gt;&lt;code&gt;Air::allocateStack&lt;/code&gt; phase&lt;/a&gt;. This code is a heavy user of Map, Set, classes, spread, and for-of. The benchmark runs &lt;code&gt;allocateStack&lt;/code&gt; on hot function bodies from other popular JavaScript benchmarks: &lt;code&gt;executeIteration&lt;/code&gt; from &lt;a href=&quot;https://developers.google.com/octane/&quot;&gt;Octane&lt;/a&gt;/Gameboy, &lt;code&gt;gaussianBlur&lt;/code&gt; from &lt;a href=&quot;http://krakenbenchmark.mozilla.org&quot;&gt;Kraken&lt;/a&gt;, and &lt;code&gt;scanIdentifier&lt;/code&gt; from Octane/Typescript. Because metacircularity, the benchmark also runs &lt;code&gt;allocateStack&lt;/code&gt; on the largest hot function in Air. &lt;a href=&quot;https://trac.webkit.o
 rg/browser/trunk/PerformanceTests/ARES-6/Air?rev=211697&quot;&gt;Browse the source.&lt;/a&gt;&lt;/p&gt;
</ins><span class="cx"> 
</span><del>-        &lt;p&gt;Basic is an &lt;a href=&quot;https://trac.webkit.org/changeset/202446&quot;&gt;ES2015 implementation of the ECMA-55 BASIC standard&lt;/a&gt;. BASIC was an interactive language from the start, so our implementation uses generator functions for the entire interpreter. When the BASIC program says &lt;code&gt;INPUT&lt;/code&gt;, our interpreter says &lt;code&gt;yield&lt;/code&gt;. This allows users of the interpreter to easily integrate it into a runloop. Basic also uses classes, Map, and WeakMap. The benchmark runs a handful of simple programs, the most complex of which finds prime numbers.&lt;/p&gt;
</del><ins>+        &lt;p&gt;Basic is an &lt;a href=&quot;https://trac.webkit.org/changeset/202446&quot;&gt;ES2015 implementation&lt;/a&gt; of the &lt;a href=&quot;http://www.ecma-international.org/publications/files/ECMA-ST-WITHDRAWN/ECMA-55,%201st%20Edition,%20January%201978.pdf&quot;&gt;ECMA-55 BASIC standard&lt;/a&gt;. BASIC was an interactive language from the start, so our implementation uses generator functions for the entire interpreter. When the BASIC program says &lt;code&gt;INPUT&lt;/code&gt;, our interpreter says &lt;code&gt;yield&lt;/code&gt;. This allows users of the interpreter to easily integrate it into a runloop. Basic also uses classes, Map, and WeakMap. The benchmark runs a handful of simple programs, the most complex of which finds prime numbers. &lt;a href=&quot;https://trac.webkit.org/browser/trunk/PerformanceTests/ARES-6/Basic?rev=211697&amp;order=name&quot;&gt;Browse the source.&lt;/a&gt;&lt;/p&gt;
+        
+        &lt;p&gt;ARES-6 rewards browsers that start up quickly and run smoothly. It's not enough to just measure the total running time of a workload. Browsers may perform differently for the same workload depending on how many times it has run. Garbage collection runs periodically, making some iterations take longer than others. Code that runs repeatedly gets optimized by the browser, so the first iteration of any workload is more expensive than the rest. ARES-6 runs these benchmarks for 200 iterations and reports the execution time of the first iteration, the average of the worst 2% iterations, and the overall geometric mean. Each of these values is given an equal weight when computing the ovarall time. ARES-6 equally rewards fast start-up, low jank, and sophisticated adaptive optimizations for long-running code.&lt;/p&gt;
+        
+        &lt;p&gt;Each ARES-6 sample has 200 iterations of Air and 200 iterations of Basic. ARES-6 runs 10 samples, and reports the average with 95% confidence intervals. Each sample runs in a fresh &lt;code&gt;iframe&lt;/code&gt; to simulate some of the effects of page navigation.&lt;/p&gt;
</ins><span class="cx"> 
</span><span class="cx">         &lt;p&gt;We like making JavaScript run faster, but we didn&amp;#8217;t have any ES2015 code to optimize. ARES-6 is a collection of sample ES2015 code written by the WebKit JavaScript team, which we used to bootstrap our ES2015 optimization efforts.&lt;/p&gt;
</span><span class="cx">         
</span><span class="lines">@@ -122,4 +126,4 @@
</span><span class="cx">     &lt;script src=&quot;glue.js&quot;&gt;&lt;/script&gt;
</span><span class="cx">         
</span><span class="cx"> &lt;/body&gt;
</span><del>-&lt;/html&gt;
</del><span class="cx">\ No newline at end of file
</span><ins>+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkPerformanceTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/PerformanceTests/ChangeLog (212128 => 212129)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/PerformanceTests/ChangeLog        2017-02-10 19:26:36 UTC (rev 212128)
+++ trunk/PerformanceTests/ChangeLog        2017-02-10 19:49:55 UTC (rev 212129)
</span><span class="lines">@@ -1,3 +1,16 @@
</span><ins>+2017-02-05  Filip Pizlo  &lt;fpizlo@apple.com&gt;
+
+        Beef up the ARES-6 explainer text
+        https://bugs.webkit.org/show_bug.cgi?id=167867
+
+        Reviewed by Saam Barati.
+        
+        Added appropriate links.
+
+        Added text that explains the subscores.
+
+        * ARES-6/index.html:
+
</ins><span class="cx"> 2017-02-06  Jer Noble  &lt;jer.noble@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Playback stalls when a SourceBuffer append causes frame eviction
</span></span></pre>
</div>
</div>

</body>
</html>