1<!DOCTYPE html> 2<!-- Copyright 2012 the Octane project authors. Scroll to the end for full license --> 3<html lang="en"> 4<head> 5<meta http-equiv="X-UA-Compatible" value="IE=edge"/> 6<meta charset="utf-8"/> 7<title>Octane JavaScript Benchmark</title> 8<meta name="viewport" content="width=device-width, initial-scale=1.0"> 9<meta http-equiv="Content-Script-Type" content="text/javascript"> 10<meta name="description" 11 content="Octane JavaScript Benchmark - the Javascript benchmark for the modern web"> 12<meta name="author" content="Octane Team Google"> 13<!-- twitter bootstrap code --> 14<script src="js/jquery.js"></script> 15<script src="js/bootstrap-transition.js"></script> 16<script src="js/bootstrap-collapse.js"></script> 17<!-- Octane benchmark code --> 18<!-- CTS --> 19<script type="text/javascript" src="cts_report.js"></script> 20<script type="text/javascript" src="base.js"></script> 21<script type="text/javascript" src="richards.js"></script> 22<script type="text/javascript" src="deltablue.js"></script> 23<script type="text/javascript" src="crypto.js"></script> 24<script type="text/javascript" src="raytrace.js"></script> 25<script type="text/javascript" src="earley-boyer.js"></script> 26<script type="text/javascript" src="regexp.js"></script> 27<script type="text/javascript" src="splay.js"></script> 28<script type="text/javascript" src="navier-stokes.js"></script> 29<script type="text/javascript" src="pdfjs.js"></script> 30<script type="text/javascript" src="mandreel.js"></script> 31<script type="text/javascript" src="gbemu.js"></script> 32<script type="text/javascript" src="code-load.js"></script> 33<script type="text/javascript" src="box2d.js"></script> 34 35<script type="text/javascript"> 36 var completed = 0; 37 var benchmarks = BenchmarkSuite.CountBenchmarks(); 38 var success = true; 39 40 function ShowBox(name) { 41 var box = document.getElementById("Box-" + name); 42 box.style.visibility = 'visible'; 43 var bar = document.getElementById("progress-bar").style.width = "" 44 + ((++completed) / benchmarks) * 100 + "%"; 45 } 46 47 function AddResult(name, result) { 48 //CTS 49 CtsReport(name, result, false); 50 var box = document.getElementById("Result-" + name); 51 box.innerHTML = result; 52 } 53 54 function AddError(name, error) { 55 console.log(error); 56 if (error == "TypedArrayUnsupported") { 57 AddResult(name, '<b>Unsupported<\/b>'); 58 } else { 59 AddResult(name, '<b>Error</b>'); 60 } 61 success = false; 62 } 63 64 function AddScore(score) { 65 var status = document.getElementById("main-banner"); 66 if (success) { 67 status.innerHTML = "Octane Score: " + score; 68 } else { 69 status.innerHTML = "Octane Score (incomplete): " + score; 70 } 71 //CTS 72 CtsReport("Octane Score" + (success ? " " : "(incomplete)"), score, true); 73 document.getElementById("progress-bar-container").style.visibility = 'hidden'; 74 document.getElementById("bottom-text").style.visibility = 'visible'; 75 document.getElementById("inside-anchor").removeChild(document.getElementById("bar-appendix")); 76 } 77 78 function Run() { 79 document.getElementById("main-banner").innerHTML = "Running Octane..."; 80 // append the progress bar elements.. 81 document.getElementById("bar-appendix").innerHTML = "<br/><div class=\"progress progress-striped\" id=\"progress-bar-container\" style=\"visibility:hidden\"><div class=\"bar\"style=\"width: 0%;\" id=\"progress-bar\"></div></div>"; 82 var anchor = document.getElementById("run-octane"); 83 var parent = document.getElementById("main-container"); 84 parent.appendChild(document.getElementById("inside-anchor")); 85 parent.removeChild(anchor); 86 87 document.getElementById("startup-text").innerHTML=""; 88 89 document.getElementById("progress-bar-container").style.visibility = 'visible'; 90 91 BenchmarkSuite.RunSuites({ 92 NotifyStart : ShowBox, 93 NotifyError : AddError, 94 NotifyResult : AddResult, 95 NotifyScore : AddScore 96 }); 97 } 98 99 function CheckCompatibility() { 100 // If no Typed Arrays support, show warning label. 101 var hasTypedArrays = typeof Uint8Array != "undefined" 102 && typeof Float64Array != "undefined" 103 && typeof (new Uint8Array(0)).subarray != "undefined"; 104 105 if (!hasTypedArrays) { 106 console.log("Typed Arrays not supported"); 107 document.getElementById("alertbox").style.display="block"; 108 } 109 if (window.document.URL.indexOf('auto=1') >= 0) 110 Run(); 111 } 112 113 function Load() { 114 setTimeout(CheckCompatibility, 200); 115 } 116</script> 117<!-- end Octane benchmark code --> 118 119<!-- Le styles --> 120<link href="css/bootstrap.css" rel="stylesheet"> 121<style> 122body { 123 padding-top: 60px; 124 /* 60px to make the container go all the way to the bottom of the topbar */ 125} 126</style> 127<link href="css/bootstrap-responsive.css" rel="stylesheet"> 128 129<!-- Le HTML5 shim, for IE6-8 support of HTML5 elements --> 130<!--[if lt IE 9]> 131 <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> 132<![endif]--> 133 134<!-- Le fav and touch icons --> 135<!-- TODO update icons --> 136<link rel="shortcut icon" href="ico/favicon.ico"> 137<link rel="apple-touch-icon-precomposed" sizes="144x144" 138 href="ico/apple-touch-icon-144-precomposed.png"> 139<link rel="apple-touch-icon-precomposed" sizes="114x114" 140 href="ico/apple-touch-icon-114-precomposed.png"> 141<link rel="apple-touch-icon-precomposed" sizes="72x72" 142 href="ico/apple-touch-icon-72-precomposed.png"> 143<link rel="apple-touch-icon-precomposed" 144 href="ico/apple-touch-icon-57-precomposed.png"> 145</head> 146 147<body onLoad="Load()"> 148 149 <div class="navbar navbar-fixed-top"> 150 <div class="navbar-inner"> 151 152 <div class="container"> 153 154 <a class="brand" href="#">Octane v1</a> 155 156 <!--/.nav-collapse --> 157 </div> 158 159 </div> 160 </div> 161 162 <div class="container"> 163 <div class="alert" style="display:none" id="alertbox"> 164 <strong>Warning</strong> This JavaScript engine does not support Typed Arrays. You might want to run the <a href="http://v8.googlecode.com/svn/data/benchmarks/v7/run.html">V8 benchmark v7</a> instead. 165 </div> 166 <div id="main-container"> 167 <a id="run-octane" href="javascript:Run()"> 168 <div class="hero-unit" id="inside-anchor"> 169 <h1 align="center" id="main-banner">Start Octane</h1> 170 <div id="bar-appendix"></div> 171 </div> 172 </a> 173 </div> 174 175 <div id="startup-text" style="color:white;" align="center"> 176 Welcome to Octane, a JavaScript benchmark for the modern web. For more accurate results, <a href="http://developers.google.com/octane/benchmark">start the browser anew</a> before running the test. Refer to the <a href="http://developers.google.com/octane">documentation</a> for more information on Octane. 177 </div> 178 179 <div class="header"></div> 180 181 <div class="content"> 182 <div class="row"> 183 <div class="span3"> 184 <!-- TODO STE change all links from staging to devsite --> 185 <div class="box" id="Box-Richards" style="visibility: hidden;"> 186 <a href="http://developers.google.com/octane/benchmark#richards" 187 target="_blank" style="float:left; color:#994520">Richards</a> 188 189 <span class="p-result" id="Result-Richards" style="float:right">...</span> 190 <span class="label-simple" 191 style="position: absolute; bottom: 3px; left: 3px;">Core 192 language features</span> 193 </div> 194 195 </div> 196 <div class="span3"> 197 <div class="box" id="Box-DeltaBlue" style="visibility: hidden;"> 198 <a href="http://developers.google.com/octane/benchmark#deltablue" 199 target="_blank" style="float:left; color:#994520">Deltablue</a> 200 201 <p class="p-result" id="Result-DeltaBlue" style="float:right">...</p> 202 <span class="label-simple" 203 style="position: absolute; bottom: 3px; left: 3px;">Core 204 language features</span> 205 </div> 206 </div> 207 <div class="span3"> 208 <div class="box" id="Box-Crypto" style="visibility: hidden;"> 209 <a href="http://developers.google.com/octane/benchmark#crypto" 210 target="_blank" style="float:left; color:#994520">Crypto</a> 211 212 <p class="p-result" id="Result-Crypto" style="float:right">...</p> 213 <span class="label-simple" 214 style="position: absolute; bottom: 3px; left: 3px;">Bit & 215 Math operations</span> 216 </div> 217 </div> 218 <div class="span3"> 219 <div class="box" id="Box-RayTrace" style="visibility: hidden;"> 220 <a href="http://developers.google.com/octane/benchmark#raytrace" 221 target="_blank" style="float:left; color:#994520">Raytrace</a> 222 223 <p class="p-result" id="Result-RayTrace" style="float:right">...</p> 224 <span class="label-simple" 225 style="position: absolute; bottom: 3px; left: 3px;">Core 226 language features</span> 227 </div> 228 </div> 229 230 </div> 231 <!-- /row --> 232 233 <div class="row"> 234 235 <div class="span3"> 236 <div class="box" id="Box-EarleyBoyer" style="visibility: hidden;"> 237 <a 238 href="http://developers.google.com/octane/benchmark#earleyboyer" 239 target="_blank" style="float:left; color:#994520">EarleyBoyer</a> 240 241 <p class="p-result" id="Result-EarleyBoyer" style="float:right">...</p> 242 <span class="label-simple" 243 style="position: absolute; bottom: 3px; left: 3px;">Memory 244 & GC</span> 245 </div> 246 </div> 247 <div class="span3"> 248 <div class="box" id="Box-RegExp" style="visibility: hidden;"> 249 <a href="http://developers.google.com/octane/benchmark#regexp" 250 target="_blank" style="float:left; color:#994520">Regexp</a> 251 252 <p class="p-result" id="Result-RegExp" style="float:right">...</p> 253 <span class="label-simple" 254 style="position: absolute; bottom: 3px; left: 3px;">Strings 255 & arrays</span> 256 </div> 257 </div> 258 <div class="span3"> 259 <div class="box" id="Box-Splay" style="visibility: hidden;"> 260 <a href="http://developers.google.com/octane/benchmark#splay" 261 target="_blank" style="float:left; color:#994520">Splay</a> 262 263 <p class="p-result" id="Result-Splay" style="float:right">...</p> 264 <span class="label-simple" 265 style="position: absolute; bottom: 3px; left: 3px;">Memory 266 & GC</span> 267 </div> 268 </div> 269 <div class="span3"> 270 <div class="box" id="Box-NavierStokes" style="visibility: hidden;"> 271 <a 272 href="http://developers.google.com/octane/benchmark#navierstokes" 273 target="_blank" style="float:left; color:#994520">NavierStokes</a> 274 275 <p class="p-result" id="Result-NavierStokes" style="float:right">...</p> 276 <span class="label-simple" 277 style="position: absolute; bottom: 3px; left: 3px;">Strings 278 & arrays</span> 279 </div> 280 </div> 281 282 </div> 283 <!-- /row --> 284 285 <div class="row"> 286 <div class="span3"> 287 <div class="box" id="Box-PdfJS" style="visibility: hidden;"> 288 <a href="http://developers.google.com/octane/benchmark#pdfjs" 289 target="_blank" style="float:left; color:#994520">pdf.js</a> 290 291 <p class="p-result" id="Result-PdfJS" style="float:right">...</p> 292 <span class="label-simple" 293 style="position: absolute; bottom: 3px; left: 3px;">Strings 294 & arrays</span> 295 </div> 296 </div> 297 <div class="span3"> 298 <div class="box" id="Box-Mandreel" style="visibility: hidden;"> 299 <a href="http://developers.google.com/octane/benchmark#mandreel" 300 target="_blank" style="float:left; color:#994520">Mandreel</a> 301 302 <p class="p-result" id="Result-Mandreel" style="float:right">...</p> 303 <span class="label-simple" 304 style="position: absolute; bottom: 3px; left: 3px;">Virtual 305 machine</span> 306 </div> 307 </div> 308 <div class="span3"> 309 <div class="box" id="Box-Gameboy" style="visibility: hidden;"> 310 <a 311 href="http://developers.google.com/octane/benchmark#gameboyemulator" 312 target="_blank" style="float:left; color:#994520">GB Emulator</a> 313 314 <p class="p-result" id="Result-Gameboy" style="float:right">...</p> 315 <span class="label-simple" 316 style="position: absolute; bottom: 3px; left: 3px;">Virtual 317 machine</span> 318 </div> 319 </div> 320 <div class="span3"> 321 <div class="box" id="Box-CodeLoad" style="visibility: hidden;"> 322 <a href="http://developers.google.com/octane/benchmark#codeload" 323 target="_blank" style="float:left; color:#994520">CodeLoad</a> 324 325 <p class="p-result" id="Result-CodeLoad" style="float:right">...</p> 326 <span class="label-simple" 327 style="position: absolute; bottom: 3px; left: 3px;">Loading 328 & Parsing</span> 329 </div> 330 </div> 331 332 </div> 333 <!-- /row --> 334 335 <div class="row"> 336 <div class="span3"> 337 <div class="box" id="Box-Box2D" style="visibility: hidden;"> 338 <a href="http://developers.google.com/octane/benchmark#box2d" 339 target="_blank" style="float:left; color:#994520">Box2DWeb</a> 340 341 <p class="p-result" id="Result-Box2D" style="float:right">...</p> 342 <span class="label-simple" 343 style="position: absolute; bottom: 3px; left: 3px;">Bit & 344 Math operations</span> 345 </div> 346 </div> 347 348 </div> 349 <!-- /row --> 350 351 </div> 352 <!-- /content --> 353 354 <div id="bottom-text" style="color:white; visibility:hidden" align="center"> 355 <br></br> 356 The final score is the <a href="http://en.wikipedia.org/wiki/Geometric_mean#Properties">geometric mean</a> of the single scores. We suggest to restart the browser before repeating the test. 357 </div> 358 359 </div> 360 <!-- /container --> 361 362</body> 363</html> 364 365<!-- 366// Copyright 2012 the Octane project authors. All rights reserved. 367// Redistribution and use in source and binary forms, with or without 368// modification, are permitted provided that the following conditions are 369// met: 370// 371// * Redistributions of source code must retain the above copyright 372// notice, this list of conditions and the following disclaimer. 373// * Redistributions in binary form must reproduce the above 374// copyright notice, this list of conditions and the following 375// disclaimer in the documentation and/or other materials provided 376// with the distribution. 377// * Neither the name of Google Inc. nor the names of its 378// contributors may be used to endorse or promote products derived 379// from this software without specific prior written permission. 380// 381// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 382// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 383// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 384// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 385// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 386// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 387// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 388// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 389// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 390// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 391// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 392--> 393