1<!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> 17<link type="text/css" rel="stylesheet" href="style.css" /> 18<script type="text/javascript"> 19var completed = 0; 20var benchmarks = BenchmarkSuite.CountBenchmarks(); 21var success = true; 22 23function ShowProgress(name) { 24 var status = document.getElementById("status"); 25 var percentage = ((++completed) / benchmarks) * 100; 26 status.innerHTML = "Running: " + Math.round(percentage) + "% completed."; 27} 28 29 30function AddResult(name, result) { 31 var text = name + ': ' + result; 32 var results = document.getElementById("results"); 33 results.innerHTML += (text + "<br>"); 34} 35 36 37function AddError(name, error) { 38 AddResult(name, '<b>error<\/b>'); 39 success = false; 40} 41 42 43function AddScore(score) { 44 var status = document.getElementById("status"); 45 if (success) { 46 status.innerHTML = "Score: " + score; 47 } 48} 49 50 51function Run() { 52 BenchmarkSuite.RunSuites({ NotifyStep: ShowProgress, 53 NotifyError: AddError, 54 NotifyResult: AddResult, 55 NotifyScore: AddScore }); 56} 57 58function ShowWarningIfObsolete() { 59 // If anything goes wrong we will just catch the exception and no 60 // warning is shown, i.e., no harm is done. 61 try { 62 var xmlhttp; 63 var next_version = parseInt(BenchmarkSuite.version) + 1; 64 var next_version_url = "../v" + next_version + "/run.html"; 65 if (window.XMLHttpRequest) { 66 xmlhttp = new window.XMLHttpRequest(); 67 } else if (window.ActiveXObject) { 68 xmlhttp = new window.ActiveXObject("Microsoft.XMLHTTP"); 69 } 70 xmlhttp.open('GET', next_version_url, true); 71 xmlhttp.onreadystatechange = function() { 72 if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { 73 document.getElementById('obsolete').style.display="block"; 74 } 75 }; 76 xmlhttp.send(null); 77 } catch(e) { 78 // Ignore exception if check for next version fails. 79 // Hence no warning is displayed. 80 } 81} 82 83function Load() { 84 var version = BenchmarkSuite.version; 85 document.getElementById("version").innerHTML = version; 86 ShowWarningIfObsolete(); 87 setTimeout(Run, 200); 88} 89</script> 90</head> 91<body onload="Load()"> 92<div> 93 <div class="title"><h1>V8 Benchmark Suite - version <span id="version">?</span></h1></div> 94 <div class="warning" id="obsolete"> 95Warning! This is not the latest version of the V8 benchmark 96suite. Consider running the 97<a href="http://v8.googlecode.com/svn/data/benchmarks/current/run.html"> 98latest version</a>. 99 </div> 100 <table> 101 <tr> 102 <td class="contents"> 103This page contains a suite of pure JavaScript benchmarks that we have 104used to tune V8. The final score is computed as the geometric mean of 105the individual results to make it independent of the running times of 106the individual benchmarks and of a reference system (score 107100). Scores are not comparable across benchmark suite versions and 108higher scores means better performance: <em>Bigger is better!</em> 109 110<ul> 111<li><b>Richards</b><br>OS kernel simulation benchmark, originally written in BCPL by Martin Richards (<i>539 lines</i>).</li> 112<li><b>DeltaBlue</b><br>One-way constraint solver, originally written in Smalltalk by John Maloney and Mario Wolczko (<i>880 lines</i>).</li> 113<li><b>Crypto</b><br>Encryption and decryption benchmark based on code by Tom Wu (<i>1698 lines</i>).</li> 114<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> 115<li><b>EarleyBoyer</b><br>Classic Scheme benchmarks, translated to JavaScript by Florian Loitsch's Scheme2Js compiler (<i>4684 lines</i>).</li> 116<li><b>RegExp</b><br>Regular expression benchmark generated by extracting regular expression operations from 50 of the most popular web pages 117(<i>1761 lines</i>). 118</li> 119<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> 120</ul> 121 122<p> 123Note that benchmark results are not comparable unless both results are 124run with the same revision of the benchmark suite. We will be making 125revisions from time to time in order to fix bugs or expand the scope 126of the benchmark suite. For previous revisions and the change log see 127the <a href="http://v8.googlecode.com/svn/data/benchmarks/current/revisions.html">revisions</a> page. 128</p> 129 130</td><td style="text-align: center"> 131<div class="run"> 132 <div id="status">Starting...</div> 133 <div id="results"> 134 </div> 135</div> 136</td></tr></table> 137 138</div> 139 140</body> 141</html> 142