blob: f1d14c1887b24491235474d2437353b3ddf3ff63 [file] [log] [blame]
Steve Blocka7e24c12009-10-30 11:49:00 +00001<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
2 "http://www.w3.org/TR/html4/strict.dtd">
3<html lang="en">
4<head>
5<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
6<meta http-equiv="Content-Script-Type" content="text/javascript">
7<meta http-equiv="Content-Style-Type" content="text/css">
8<title>V8 Benchmark Suite</title>
9<script type="text/javascript" src="base.js"></script>
10<script type="text/javascript" src="richards.js"></script>
11<script type="text/javascript" src="deltablue.js"></script>
12<script type="text/javascript" src="crypto.js"></script>
13<script type="text/javascript" src="raytrace.js"></script>
14<script type="text/javascript" src="earley-boyer.js"></script>
15<script type="text/javascript" src="regexp.js"></script>
16<script type="text/javascript" src="splay.js"></script>
Ben Murdoch3ef787d2012-04-12 10:51:47 +010017<script type="text/javascript" src="navier-stokes.js"></script>
Steve Blocka7e24c12009-10-30 11:49:00 +000018<link type="text/css" rel="stylesheet" href="style.css" />
19<script type="text/javascript">
20var completed = 0;
21var benchmarks = BenchmarkSuite.CountBenchmarks();
22var success = true;
23
24function ShowProgress(name) {
25 var status = document.getElementById("status");
26 var percentage = ((++completed) / benchmarks) * 100;
27 status.innerHTML = "Running: " + Math.round(percentage) + "% completed.";
28}
29
30
31function AddResult(name, result) {
32 var text = name + ': ' + result;
33 var results = document.getElementById("results");
34 results.innerHTML += (text + "<br>");
35}
36
37
38function AddError(name, error) {
39 AddResult(name, '<b>error<\/b>');
40 success = false;
41}
42
43
44function AddScore(score) {
45 var status = document.getElementById("status");
46 if (success) {
47 status.innerHTML = "Score: " + score;
48 }
49}
50
51
52function Run() {
53 BenchmarkSuite.RunSuites({ NotifyStep: ShowProgress,
54 NotifyError: AddError,
55 NotifyResult: AddResult,
Ben Murdoch3ef787d2012-04-12 10:51:47 +010056 NotifyScore: AddScore });
Steve Blocka7e24c12009-10-30 11:49:00 +000057}
58
59function ShowWarningIfObsolete() {
Ben Murdoch3ef787d2012-04-12 10:51:47 +010060 // If anything goes wrong we will just catch the exception and no
Steve Blocka7e24c12009-10-30 11:49:00 +000061 // warning is shown, i.e., no harm is done.
62 try {
63 var xmlhttp;
Ben Murdoch3ef787d2012-04-12 10:51:47 +010064 var next_version = parseInt(BenchmarkSuite.version) + 1;
65 var next_version_url = "../v" + next_version + "/run.html";
Steve Blocka7e24c12009-10-30 11:49:00 +000066 if (window.XMLHttpRequest) {
67 xmlhttp = new window.XMLHttpRequest();
68 } else if (window.ActiveXObject) {
69 xmlhttp = new window.ActiveXObject("Microsoft.XMLHTTP");
70 }
71 xmlhttp.open('GET', next_version_url, true);
72 xmlhttp.onreadystatechange = function() {
73 if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
74 document.getElementById('obsolete').style.display="block";
75 }
76 };
77 xmlhttp.send(null);
78 } catch(e) {
Ben Murdoch3ef787d2012-04-12 10:51:47 +010079 // Ignore exception if check for next version fails.
Steve Blocka7e24c12009-10-30 11:49:00 +000080 // Hence no warning is displayed.
81 }
82}
83
84function Load() {
85 var version = BenchmarkSuite.version;
86 document.getElementById("version").innerHTML = version;
Ben Murdoch3ef787d2012-04-12 10:51:47 +010087 ShowWarningIfObsolete();
Steve Blocka7e24c12009-10-30 11:49:00 +000088 setTimeout(Run, 200);
89}
90</script>
91</head>
92<body onload="Load()">
93<div>
94 <div class="title"><h1>V8 Benchmark Suite - version <span id="version">?</span></h1></div>
Ben Murdoch3ef787d2012-04-12 10:51:47 +010095 <div class="warning" id="obsolete">
Steve Blocka7e24c12009-10-30 11:49:00 +000096Warning! This is not the latest version of the V8 benchmark
Ben Murdoch3ef787d2012-04-12 10:51:47 +010097suite. Consider running the
Steve Blocka7e24c12009-10-30 11:49:00 +000098<a href="http://v8.googlecode.com/svn/data/benchmarks/current/run.html">
Ben Murdoch3ef787d2012-04-12 10:51:47 +010099latest version</a>.
Steve Blocka7e24c12009-10-30 11:49:00 +0000100 </div>
101 <table>
102 <tr>
103 <td class="contents">
104This page contains a suite of pure JavaScript benchmarks that we have
105used to tune V8. The final score is computed as the geometric mean of
106the individual results to make it independent of the running times of
107the individual benchmarks and of a reference system (score
108100). Scores are not comparable across benchmark suite versions and
109higher scores means better performance: <em>Bigger is better!</em>
110
111<ul>
112<li><b>Richards</b><br>OS kernel simulation benchmark, originally written in BCPL by Martin Richards (<i>539 lines</i>).</li>
113<li><b>DeltaBlue</b><br>One-way constraint solver, originally written in Smalltalk by John Maloney and Mario Wolczko (<i>880 lines</i>).</li>
114<li><b>Crypto</b><br>Encryption and decryption benchmark based on code by Tom Wu (<i>1698 lines</i>).</li>
Kristian Monsen25f61362010-05-21 11:50:48 +0100115<li><b>RayTrace</b><br>Ray tracer benchmark based on code by <a href="http://flog.co.nz/">Adam Burmister</a> (<i>904 lines</i>).</li>
116<li><b>EarleyBoyer</b><br>Classic Scheme benchmarks, translated to JavaScript by Florian Loitsch's Scheme2Js compiler (<i>4684 lines</i>).</li>
Steve Blocka7e24c12009-10-30 11:49:00 +0000117<li><b>RegExp</b><br>Regular expression benchmark generated by extracting regular expression operations from 50 of the most popular web pages
Kristian Monsen0d5e1162010-09-30 15:31:59 +0100118(<i>1761 lines</i>).
Steve Blocka7e24c12009-10-30 11:49:00 +0000119</li>
Steve Block8defd9f2010-07-08 12:39:36 +0100120<li><b>Splay</b><br>Data manipulation benchmark that deals with splay trees and exercises the automatic memory management subsystem (<i>394 lines</i>).</li>
Ben Murdoch3ef787d2012-04-12 10:51:47 +0100121<li><b>NavierStokes</b><br>Solves NavierStokes equations in 2D, heavily manipulating double precision arrays. Based on Oliver Hunt's code (<i>387 lines</i>).</li>
Steve Blocka7e24c12009-10-30 11:49:00 +0000122</ul>
123
124<p>
125Note that benchmark results are not comparable unless both results are
126run with the same revision of the benchmark suite. We will be making
127revisions from time to time in order to fix bugs or expand the scope
128of the benchmark suite. For previous revisions and the change log see
129the <a href="http://v8.googlecode.com/svn/data/benchmarks/current/revisions.html">revisions</a> page.
130</p>
131
132</td><td style="text-align: center">
133<div class="run">
134 <div id="status">Starting...</div>
135 <div id="results">
136 </div>
137</div>
138</td></tr></table>
139
140</div>
141
142</body>
143</html>