Tracking Dart VM and
dart2js performance. Read more about
To navigate the chart, drag to pan and shift-drag to zoom.
Frequently asked questions
- What does the benchmark score mean?
- The score is essentially runs/second: the number of times
you can run the benchmark in one second. For all scores,
bigger is better.
- What benchmarks are you tracking?
- We are currently showing charts for the
DeltaBlue, Richards, Tracer, and FluidMotion.
is a one-way constraint solver, originally written in Smalltalk by
John Maloney and Mario Wolczko. The main focus in DeltaBlue is on
polymorphism and object-oriented programming.
is a 2D Navier-Stokes equations solver,
The main focus is on accessing numeric arrays,
as well as doing floating-point arithmetic.
is an OS kernel simulation benchmark, originally written
in BCPL by Martin Richards. The main focus in Richards is on property
access and calling functions and methods.
is a ray tracer benchmark,
the class emulation pattern from the prototype.js library.
Because Dart has a native class system,
it’s unfair to do a direct performance comparison with the Octane version.
We therefore compare Dart performance with
The improved version uses only constructors and prototypes
without any abstraction layers in between;
it runs 50% faster than the original
- How do you generate numbers for the Dart VM, dart2js, and V8?
- The Dart VM numbers are generated using the Dart
benchmark harness on the
Dart VM. Similarly, the dart2js numbers are generated by compiling the
and then running the generated code in V8.
Finally, the V8 numbers are generated using the same benchmarks written in
- What system setup are you running the benchmarks on?
- The benchmarks are run on an Intel(R) Core(TM) i5-2400 CPU @ 3.10GHz
processor running the Ubuntu 12.04 LTS x64 operating system.
- Are the results 32-bit or 64-bit?
- They are 32-bit. While the code runs on a 64-bit operating system, we’re
running the 32-bit version of both the V8 and Dart VMs.
- Yes, it is fair. Type annotations in Dart have — by design —
no impact on
runtime performance in the VM’s default mode (production). For more details,
read more about Dart’s
optional static types and
why they are optional.
Credit to olliej on HN.
- Where are the other benchmarks?
- Porting benchmarks correctly takes time. As more benchmarks become ready,
we will publish more charts.