Articles by Alon Zakai
-
Shrinking WebAssembly and JavaScript code sizes in Emscripten
Emscripten is a compiler toolchain for asm.js and WebAssembly which lets you run C and C++ on the web at near-native speed. Emscripten output sizes have decreased a lot recently, especially for smaller programs. Alon Zakai takes a closer look at some of these optimizations and new areas for improvement.
-
Why WebAssembly is Faster Than asm.js
Performance is tricky to measure, and has many aspects. Also, in a new technology there are always going to be not-yet-optimized cases. So not every single benchmark will be fast on WebAssembly today. This post describes why WebAssembly should be fast; where it isn’t yet, those are bugs we need to fix.
-
Compiling to WebAssembly: It’s Happening!
WebAssembly is a new binary format for compilation to the web. It is in the process of being designed and implemented as we speak, in collaboration among the major browser vendors. Things are moving quickly! In this post we’ll show some of our recent progress with a deep dive into the toolchain side of WebAssembly. […]
-
asm.js Speedups Everywhere
asm.js is an easy-to-optimize subset of JavaScript. It runs in all browsers without plugins, and is a good target for porting C/C++ codebases such as game engines – which have in fact been the biggest adopters of this approach, for example Unity 3D and Unreal Engine. Obviously, developers porting games using asm.js would like them […]
-
Synchronous Execution and Filesystem Access in Emscripten
Emscripten helps port C and C++ code to run on the Web. When doing such porting, we have to work around limitations of the web platform, one of which is that code must be asynchronous: you can’t have long-running code on the Web, it must be split up into events, because other important things – […]
-
Massive: The asm.js Benchmark
asm.js is a subset of JavaScript that is very easy to optimize. Most often it is generated by a compiler, such as Emscripten, from C or C++ code. The result can run at very high speeds, close to that of the same code compiled natively. For that reason, Emscripten and asm.js are useful for things […]
-
Gap between asm.js and native performance gets even narrower with float32 optimizations
asm.js is a simple subset of JavaScript that is very easy to optimize, suitable for use as a compiler target from languages like C and C++. Earlier this year Firefox could run asm.js code at about half of native speed – that is, C++ code compiled by emscripten could run at about half the speed […]