- Hands-On Game Development with WebAssembly
- Rick Battagline
- 250字
- 2021-06-24 13:41:00
What is asm.js?
One early attempt to achieve native-like speed in the web browser using JavaScript was asm.js. Although that goal was reached and asm.js was adopted by all the major browser vendors, it never achieved widespread adoption by developers. The beauty of asm.js is that it still runs in most browsers, even in those that do not optimize for it. The idea behind asm.js was that typed arrays could be used in JavaScript to fake a C++ memory heap. The browser simulates pointers and memory allocation in C++, as well as types. A well-designed JavaScript engine can avoid dynamic type checking. Using asm.js, browser makers could get around many of the optimization problems created by the dynamic nature of JavaScript, by just pretending that this version of JavaScript is not dynamically typed. Emscripten, designed as a C++-to-JavaScript compiler, quickly adopted asm.js as the subset of JavaScript that it would compile to because of its improved performance in most browsers. The performance improvements driven by asm.js lead the way to WebAssembly. The same engine modifications used to make asm.js perform well could be used to bootstrap the WebAssembly MVP. Only the addition of a bytecode-to-bytecode compiler was required to take the WebAssembly bytecode and directly convert it into the IR bytecode used by the browser.
- Linux KVM虛擬化架構實戰指南
- 基于Proteus和Keil的C51程序設計項目教程(第2版):理論、仿真、實踐相融合
- 平衡掌控者:游戲數值經濟設計
- Practical Machine Learning with R
- OpenGL Game Development By Example
- Blender Quick Start Guide
- 單片機技術及應用
- 基于PROTEUS的電路設計、仿真與制板
- 觸摸屏應用技術從入門到精通
- 筆記本電腦維修技能實訓
- The Reinforcement Learning Workshop
- 基于S5PV210處理器的嵌入式開發完全攻略
- 微服務架構實戰:基于Spring Boot、Spring Cloud、Docker
- FPGA進階開發與實踐
- 計算機組裝與維護教程