OLD | NEW |
1 <html> | 1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" |
| 2 "http://www.w3.org/TR/html4/strict.dtd"> |
| 3 <html lang="en"> |
2 <head> | 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"> |
3 <title>V8 Benchmark Suite</title> | 8 <title>V8 Benchmark Suite</title> |
4 <script type="text/javascript" src="../json2.js"></script> | 9 <script type="text/javascript" src="../json2.js"></script> |
5 <script type="text/javascript" src="../../perf/v8_benchmark_uitest.js"></script> | 10 <script type="text/javascript" src="../../perf/v8_benchmark_uitest.js"></script> |
6 <script type="text/javascript" src="base.js"></script> | 11 <script type="text/javascript" src="base.js"></script> |
7 <script type="text/javascript" src="richards.js"></script> | 12 <script type="text/javascript" src="richards.js"></script> |
8 <script type="text/javascript" src="deltablue.js"></script> | 13 <script type="text/javascript" src="deltablue.js"></script> |
9 <script type="text/javascript" src="crypto.js"></script> | 14 <script type="text/javascript" src="crypto.js"></script> |
10 <script type="text/javascript" src="raytrace.js"></script> | 15 <script type="text/javascript" src="raytrace.js"></script> |
11 <script type="text/javascript" src="earley-boyer.js"></script> | 16 <script type="text/javascript" src="earley-boyer.js"></script> |
12 <script type="text/javascript" src="regexp.js"></script> | 17 <script type="text/javascript" src="regexp.js"></script> |
13 <script type="text/javascript" src="splay.js"></script> | 18 <script type="text/javascript" src="splay.js"></script> |
14 <link type="text/css" rel="stylesheet" href="style.css"></link> | 19 <link type="text/css" rel="stylesheet" href="style.css" /> |
15 <script type="text/javascript"> | 20 <script type="text/javascript"> |
16 var completed = 0; | 21 var completed = 0; |
17 var benchmarks = BenchmarkSuite.CountBenchmarks(); | 22 var benchmarks = BenchmarkSuite.CountBenchmarks(); |
18 var success = true; | 23 var success = true; |
19 | 24 |
20 function ShowProgress(name) { | 25 function ShowProgress(name) { |
21 var status = document.getElementById("status"); | 26 var status = document.getElementById("status"); |
22 var percentage = ((++completed) / benchmarks) * 100; | 27 var percentage = ((++completed) / benchmarks) * 100; |
23 status.innerHTML = "Running: " + Math.round(percentage) + "% completed."; | 28 status.innerHTML = "Running: " + Math.round(percentage) + "% completed."; |
24 } | 29 } |
25 | 30 |
26 | 31 |
27 function AddResult(name, result) { | 32 function AddResult(name, result) { |
28 automation.AddResult(name, result); | 33 automation.AddResult(name, result); |
29 var text = name + ': ' + result; | 34 var text = name + ': ' + result; |
30 var results = document.getElementById("results"); | 35 var results = document.getElementById("results"); |
31 results.innerHTML += (text + "<br/>"); | 36 results.innerHTML += (text + "<br>"); |
32 } | 37 } |
33 | 38 |
34 | 39 |
35 function AddError(name, error) { | 40 function AddError(name, error) { |
36 AddResult(name, '<b>error</b>'); | 41 AddResult(name, '<b>error<\/b>'); |
37 success = false; | 42 success = false; |
38 } | 43 } |
39 | 44 |
40 | 45 |
41 function AddScore(score) { | 46 function AddScore(score) { |
42 automation.SetScore(score); | 47 automation.SetScore(score); |
43 automation.SetDone(); | 48 automation.SetDone(); |
44 var status = document.getElementById("status"); | 49 var status = document.getElementById("status"); |
45 if (success) { | 50 if (success) { |
46 status.innerHTML = "Score: " + score; | 51 status.innerHTML = "Score: " + score; |
47 } | 52 } |
48 } | 53 } |
49 | 54 |
50 | 55 |
51 function Run() { | 56 function Run() { |
52 BenchmarkSuite.RunSuites({ NotifyStep: ShowProgress, | 57 BenchmarkSuite.RunSuites({ NotifyStep: ShowProgress, |
53 NotifyError: AddError, | 58 NotifyError: AddError, |
54 NotifyResult: AddResult, | 59 NotifyResult: AddResult, |
55 NotifyScore: AddScore }); | 60 NotifyScore: AddScore }); |
| 61 } |
| 62 |
| 63 function ShowWarningIfObsolete() { |
| 64 // If anything goes wrong we will just catch the exception and no |
| 65 // warning is shown, i.e., no harm is done. |
| 66 try { |
| 67 var xmlhttp; |
| 68 var next_version = parseInt(BenchmarkSuite.version) + 1; |
| 69 var next_version_url = "../v" + next_version + "/run.html"; |
| 70 if (window.XMLHttpRequest) { |
| 71 xmlhttp = new window.XMLHttpRequest(); |
| 72 } else if (window.ActiveXObject) { |
| 73 xmlhttp = new window.ActiveXObject("Microsoft.XMLHTTP"); |
| 74 } |
| 75 xmlhttp.open('GET', next_version_url, true); |
| 76 xmlhttp.onreadystatechange = function() { |
| 77 if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { |
| 78 document.getElementById('obsolete').style.display="block"; |
| 79 } |
| 80 }; |
| 81 xmlhttp.send(null); |
| 82 } catch(e) { |
| 83 // Ignore exception if check for next version fails. |
| 84 // Hence no warning is displayed. |
| 85 } |
56 } | 86 } |
57 | 87 |
58 function Load() { | 88 function Load() { |
59 var version = BenchmarkSuite.version; | 89 var version = BenchmarkSuite.version; |
60 document.getElementById("version").innerHTML = version; | 90 document.getElementById("version").innerHTML = version; |
61 window.setTimeout(Run, 200); | 91 ShowWarningIfObsolete(); |
| 92 setTimeout(Run, 200); |
62 } | 93 } |
63 </script> | 94 </script> |
64 </head> | 95 </head> |
65 <body onLoad="Load()"> | 96 <body onload="Load()"> |
66 <div> | 97 <div> |
67 <div class="title"><h1>V8 Benchmark Suite - version <span id="version">?</span
></h1></div> | 98 <div class="title"><h1>V8 Benchmark Suite - version <span id="version">?</span
></h1></div> |
| 99 <div class="warning" id="obsolete"> |
| 100 Warning! This is not the latest version of the V8 benchmark |
| 101 suite. Consider running the |
| 102 <a href="http://v8.googlecode.com/svn/data/benchmarks/current/run.html"> |
| 103 latest version</a>. |
| 104 </div> |
68 <table> | 105 <table> |
69 <tr> | 106 <tr> |
70 <td class="contents"> | 107 <td class="contents"> |
71 This page contains a suite of pure JavaScript benchmarks that we have | 108 This page contains a suite of pure JavaScript benchmarks that we have |
72 used to tune V8. The final score is computed as the geometric mean of | 109 used to tune V8. The final score is computed as the geometric mean of |
73 the individual results to make it independent of the running times of | 110 the individual results to make it independent of the running times of |
74 the individual benchmarks and of a reference system (score | 111 the individual benchmarks and of a reference system (score |
75 100). Scores are not comparable across benchmark suite versions and | 112 100). Scores are not comparable across benchmark suite versions and |
76 higher scores means better performance: <em>Bigger is better!</em> | 113 higher scores means better performance: <em>Bigger is better!</em> |
77 | 114 |
78 <ul> | 115 <ul> |
79 <li><b>Richards</b><br/>OS kernel simulation benchmark, originally written in BC
PL by Martin Richards (<i>539 lines</i>).</li> | 116 <li><b>Richards</b><br>OS kernel simulation benchmark, originally written in BCP
L by Martin Richards (<i>539 lines</i>).</li> |
80 <li><b>DeltaBlue</b><br/>One-way constraint solver, originally written in Smallt
alk by John Maloney and Mario Wolczko (<i>880 lines</i>).</li> | 117 <li><b>DeltaBlue</b><br>One-way constraint solver, originally written in Smallta
lk by John Maloney and Mario Wolczko (<i>880 lines</i>).</li> |
81 <li><b>Crypto</b><br/>Encryption and decryption benchmark based on code by Tom W
u (<i>1698 lines</i>).</li> | 118 <li><b>Crypto</b><br>Encryption and decryption benchmark based on code by Tom Wu
(<i>1698 lines</i>).</li> |
82 <li><b>RayTrace</b><br/>Ray tracer benchmark based on code by <a href="http://fl
og.co.nz/">Adam Burmister</a> (<i>935 lines</i>).</li> | 119 <li><b>RayTrace</b><br>Ray tracer benchmark based on code by <a href="http://flo
g.co.nz/">Adam Burmister</a> (<i>904 lines</i>).</li> |
83 <li><b>EarleyBoyer</b><br/>Classic Scheme benchmarks, translated to JavaScript b
y Florian Loitsch's Scheme2Js compiler (<i>4685 lines</i>).</li> | 120 <li><b>EarleyBoyer</b><br>Classic Scheme benchmarks, translated to JavaScript by
Florian Loitsch's Scheme2Js compiler (<i>4684 lines</i>).</li> |
84 <li><b>RegExp</b><br/>Regular expression benchmark generated by extracting regul
ar expression operations from 50 of the most popular web pages | 121 <li><b>RegExp</b><br>Regular expression benchmark generated by extracting regula
r expression operations from 50 of the most popular web pages |
85 (<i>1614 lines</i>). | 122 (<i>1761 lines</i>). |
86 </li> | 123 </li> |
87 <li><b>Splay</b><br/>Data manipulation benchmark that deals with splay trees and
exercises the automatic memory management subsystem (<i>378 lines</i>).</li> | 124 <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> |
88 </ul> | 125 </ul> |
89 | 126 |
90 <p> | 127 <p> |
91 Note that benchmark results are not comparable unless both results are | 128 Note that benchmark results are not comparable unless both results are |
92 run with the same revision of the benchmark suite. We will be making | 129 run with the same revision of the benchmark suite. We will be making |
93 revisions from time to time in order to fix bugs or expand the scope | 130 revisions from time to time in order to fix bugs or expand the scope |
94 of the benchmark suite. For previous revisions and the change log see | 131 of the benchmark suite. For previous revisions and the change log see |
95 the <a href="http://v8.googlecode.com/svn/data/benchmarks/current/revisions.html
">revisions</a> page. | 132 the <a href="http://v8.googlecode.com/svn/data/benchmarks/current/revisions.html
">revisions</a> page. |
96 </p> | 133 </p> |
97 | 134 |
98 </td><td style="text-align: center"> | 135 </td><td style="text-align: center"> |
99 <div class="run"> | 136 <div class="run"> |
100 <div id="status" style="text-align: center; margin-top: 50px; font-size: 120%;
font-weight: bold;">Starting...</div> | 137 <div id="status">Starting...</div> |
101 <div style="text-align: left; margin: 30px 0 0 90px;" id="results"> | 138 <div id="results"> |
102 <div> | 139 </div> |
103 </div> | 140 </div> |
104 </td></tr></table> | 141 </td></tr></table> |
105 | 142 |
106 </div> | 143 </div> |
107 | 144 |
108 </body> | 145 </body> |
109 </html> | 146 </html> |
OLD | NEW |