Date: 9 January 2017
Browser: Chrome 57.0.2970.0 (Official Build) dev (64-bit)
Name | WASM (WebAssembly) | Asm.js |
---|---|---|
Loading time | ~2.1s | ~2.4s |
Files used | ammoloader.js [434 Kb], ammo.wasm [725 Kb] |
ammo.js [1.7Mb] |
WASM binary compile time | (130ms - 300ms) Average: 180ms |
- |
Example used | basic / helloworld | basic / helloworld |
Compilation | Tools: Emscripten v1.37.1 (Binaryen v21) Output files: • ammo.js [562Kb] wrapped and renamed to ammoloader.js • ammo.asm.js [7.18Mb] • ammo.wast [12.6Mb] • ammo.wasm [725Kb] |
Tools: Emscripten v1.37.1 (Asm.js) Output files: • ammo.js [1.7Mb] |
Loading time - Not the real loading time. There were whitestorm.js beta and three.js loaded first in both cases.
ammoloader.js
contains a lot of code generated in emscripten. It is required file, cause it contains data that should be imported in WASM module of compiled Bullet Physics, but it also has a lot of polyfills that are also applied to that module (such as asm.js polyfill). Applying them to exports object can take additional time.
build/
- Output files from Bullet Physics 3 to WASM to compilation.vendor/
- Files used in performance comparison.
It means that work isn't finished yet. I will try to optimize ammoloader.js
as far as possible and will play more with compilation parameters, let me know if you know how to improve loading speed.
Example will be uploaded soon