A bit over a year ago, we released a blog post with performance benchmarks for Unity WebGL, to compare WebGL performance in different browsers. We figured it was time to revisit those benchmarks to see how the numbers have changed.

Microsoft has since released Windows 10 with their new Edge browser (which supports asm.js and is now enabling it by default) – so we were interested to see how that competes. Also, we have an experimental build of Unity using Shared Array Buffers to run multithreaded code, and we wanted to see what kind of performance gains to expect. So we tested this in a nightly build of Firefox with Shared Array Buffer support.

You are welcome try our updated benchmark suite in your own browser here.

Some notes on methodology changes from last year’s benchmarks:

This is using an updated build of the benchmark suite built in Unity 5.3. You can download the project folder for this benchmark suite here , so you can experiment with it locally, or try it on other platforms.

This version has been stripped of all of the artwork and eye candy we had in the previous version. They added no value to the benchmarks, and the programmer art used never looked good anyway. Stripping the assets makes the builds smaller, and, more importantly, allows us to redistribute the project folder (see the link above).

We omitted the “Mandelbrot GPU” benchmark from the test suite, as that test would really only benchmark the GPU and not show significantly different results on different browsers – so it would skew the overall results to show smaller relative differences.

We omitted the comparison to a native standalone build we did last year, as we found those results to be misleading, as we are often running different code on different platforms (like different shader implementations with different quality settings – and also different scripting engines).

We tested EdgeHTML 12 ( Edge 20.10240.16384.0) , which was the latest version when we ran the benchmarks, and which did not have asm.js enabled by default – so we turned it on manually. By now EdgeHTML 13 is released, which has asm.js enabled by default.

Here are the overall scores of the different browsers running the benchmark suite on an Windows 10 machine with a 3.3.GHz i7 CPU and an Nvidia GTX 960 GPU. Firefox 45 with Shared Array Buffers has a greyed out bar, as this is an experimental build of Unity running on a nightly build of Firefox:

Here are the scores of the different browsers running the benchmark suite on Mac OS X on a Retina MacBook Pro 15” with an 2.6 GHz i7 CPU (so we can see how Safari compares against the other browsers):

Here are the detailed results for each benchmark on windows (results scaled so that Firefox 41 32-bit equals 1.0 for each test):

And on OS X (again, scaled so that Firefox equals 1.0 for each test):

Here are the overall results from the benchmark build we showed last year compared to today, to see how performance has changed since (running on Mac OS X on a Retina MacBook Pro 15” with an 2.6 GHz i7 CPU):

Finally, here is a benchmark of how long it takes for Unity content to start up. The bars below represent the time in seconds it took between opening the benchmark project and rendering the first frame in different browsers. This is running content from a local disk, so the time to download files from the network is ignored. Firefox performs caching of asm.js compilation results, which means that when the same content is run more than once, compilation can be skipped, and subsequent runs will load faster. So we are showing numbers for both cold (first run) and hot (subsequent run with loading asm.js from cache) runs for Firefox:

Some findings: