<html>
<head>
<title>V8 Benchmark Suite Revisions</title>
<link type="text/css" rel="stylesheet" href="style.css" />
</head>
<body>
<div>
  <div class="title"><h1>V8 Benchmark Suite Revisions</h1></div>
  <table>
    <tr>
      <td class="contents">

<p>

The V8 benchmark suite is changed from time to time as we fix bugs or
expand the scope of the benchmarks.  Here is a list of revisions, with
a description of the changes made.  Note that benchmark results are
not comparable unless both results are run with the same revision of
the benchmark suite.

</p>

<div class="subtitle"><h3>Version 5 (<a href="http://v8.googlecode.com/svn/data/benchmarks/v5/run.html">link</a>)</h3></div>

<p>Removed duplicate line in random seed code, and changed the name of
the Object.prototype.inherits function in the DeltaBlue benchmark to
inheritsFrom to avoid name clashes when running in Chromium with
extensions enabled.
</p>

<div class="subtitle"><h3>Version 4 (<a href="http://v8.googlecode.com/svn/data/benchmarks/v4/run.html">link</a>)</h3></div>

<p>The <i>Splay</i> benchmark is a newcomer in version 4.  It
manipulates a splay tree by adding and removing data nodes, thus
exercising the memory management subsystem of the JavaScript engine.
</p>

<p>
Furthermore, all the unused parts of the Prototype library were
removed from the RayTrace benchmark. This does not affect the running
of the benchmark.
</p>


<div class="subtitle"><h3>Version 3 (<a href="http://v8.googlecode.com/svn/data/benchmarks/v3/run.html">link</a>)</h3></div>

<p>Version 3 adds a new benchmark, <i>RegExp</i>.  The RegExp
benchmark is generated by loading 50 of the most popular pages on the
web and logging all regexp operations performed.  Each operation is
given a weight that is calculated from an estimate of the popularity
of the pages where it occurs and the number of times it is executed
while loading each page.  Finally the literal letters in the data are
encoded using ROT13 in a way that does not affect how the regexps
match their input.
</p>


<div class="subtitle"><h3>Version 2 (<a href="http://v8.googlecode.com/svn/data/benchmarks/v2/run.html">link</a>)</h3></div>

<p>For version 2 the Crypto benchmark was fixed.  Previously, the
decryption stage was given plaintext as input, which resulted in an
error.  Now, the decryption stage is given the output of the
encryption stage as input.  The result is checked against the original
plaintext.  For this to give the correct results the crypto objects
are reset for each iteration of the benchmark.  In addition, the size
of the plain text has been increased a little and the use of
Math.random() and new Date() to build an RNG pool has been
removed. </p>

<p>Other benchmarks were fixed to do elementary verification of the
results of their calculations.  This is to avoid accidentally
obtaining scores that are the result of an incorrect JavaScript engine
optimization.</p>


<div class="subtitle"><h3>Version 1 (<a href="http://v8.googlecode.com/svn/data/benchmarks/v1/run.html">link</a>)</h3></div>

<p>Initial release.</p>

</td><td style="text-align: center">
</td></tr></table>

</div>

</body>
</html>
