Source code

Revision control

Other Tools

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