Octane

The Benchmark

But first, few tips on how to run a benchmark

If you want to run a benchmark and obtain a meaningful result, you need to be careful in a few areas:

  • Make sure your computer is in a fully idle state, i.e. that there are no other programs running and that the OS is not performing any maintenance work. Under Windows for example, all updates should be installed and the antivirus should be disabled.
  • Your computer's Energy Saving / CPU settings should be turned to "maximum performance". This ensures the OS will not enter a power-saving mode at any time while running Octane and thereby reduce the processor speed.
  • Wait for 30 seconds after launching the browser before starting Octane. This ensures that the browser has finished any initial background tasks (like auto-update checks). For each run of the benchmark, the browser should be restarted to make sure that each run starts with the same initial browser state.
  • Run the benchmark multiple times. Discard top and bottom results and average the remaining scores. Octane generates very consistent scores, but there are external OS and browser factors that can cause the score to vary slightly between runs.

The test suite in detail

Octane v.1 consists of 13 tests, 5 new ones and 8 from the original V8 Benchmark Suite. We have chosen each test in order to cover most use cases encountered in the real web.

We believe a high-performance JavaScript engine should be able to perform well on real-world code, not just synthetic benchmarks. That is how the five new tests, and future ones, have been selected.

  • Richards
    OS kernel simulation benchmark, originally written in BCPL by Martin Richards (539 lines).
    • Main focus: property load/store, function/method calls
    • Secondary focus: code optimization, elimination of redundant code
  • Deltablue
    One-way constraint solver, originally written in Smalltalk by John Maloney and Mario Wolczko (880 lines).
    • Main focus: polymorphism
    • Secondary focus: OO-style programming
  • Raytrace
    Ray tracer benchmark based on code by Adam Burmister (904 lines).
    • Main focus: argument object, apply
    • Secondary focus: prototype library object, creation pattern
  • Regexp
    Regular expression benchmark generated by extracting regular expression operations from 50 of the most popular web pages (1761 lines).
    • Main focus: Regular expressions
  • NavierStokes
    2D NavierStokes equations solver, heavily manipulates double precision arrays. Based on Oliver Hunt's code (387 lines).
    • Main focus: reading and writing numeric arrays.
    • Secondary focus: floating point math.
  • Crypto
    Encryption and decryption benchmark based on code by Tom Wu (1698 lines).
    • Main focus: bit operations
  • Splay
    Data manipulation benchmark that deals with splay trees and exercises the automatic memory management subsystem (394 lines)..
    • Main focus: Fast object creation, destruction
  • EarleyBoyer
    Classic Scheme benchmarks, translated to JavaScript by Florian Loitsch's Scheme2Js compiler (4684 lines).
    • Main focus: Fast object creation, destruction
    • Secondary focus: closures, arguments object
  • pdf.js New
    Mozilla's PDF Reader implemented in JavaScript. It measures decoding and interpretation time (33,056 lines).
    • Main focus: array and typed arrays manipulations.
    • Secondary focus: math and bit operations, support for future language features (e.g. promises)
  • Mandreel New
    Runs the 3D Bullet Physics Engine ported from C++ to JavaScript via Mandreel (277,377 lines).
    • Main focus: emulation
  • GB Emulator New
    Emulate the portable console's architecture and runs a demanding 3D simulation, all in JavaScript (11,097 lines).
    • Main focus: emulation
  • Code loading New
    measures how quickly a JavaScript engine can start executing code after loading a large JavaScript program, social widget being a common example. The source for test is derived from open source libraries (Closure, jQuery) (1,530 lines).
    • Main focus: JavaScript parsing and compilation
  • Box2DWeb New
    Based on Box2DWeb, the popular 2D physics engine originally written by Erin Catto, ported to JavaScript. (560 lines, 9000+ de-minified)
    • Main focus: floating point math.
    • Secondary focus: properties containing doubles, accessor properties.

Authentication required

You need to be signed in with Google+ to do that.

Signing you in...

Google Developers needs your permission to do that.