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