asm.js简介

虽然俺asm.js出来好久了,但是国内的网络上对于asm.js的介绍还是非常少。这里我简单的介绍一下asm.js

众所周知,相当多的应用程序是通过c语言或者c++语言编写的、运行在本机的,然而未来的应用很可能是javascript编写的、运行在浏览器的程序。如何在最小成本下把本地的应用程序移植到网页端就是研究的一个问题——这也就是asm.js出现的目的。

asm.js并不是一个js库,就像是node.js并不是一个js库一样。asm.js更像是一个编程的标准,用来赋予javascript一些原本并不具有的c++等语言的特性。javascript是一门弱类型语言,它的变量并不用特意声明类型就可以使用。asm.js就规定了一些巧妙的方案来解决它。

基于asm.js的应用程序的通常的构架是这样的:

  1. C或者C++代码
  2. Clang:c语言本身的运行库
  3. Emscripten :一个用来把C语言编译成JS和字节码的软件
  4. LLVM:一种字节码
  5. Asm.js
  6. 本地代码

经过测试这样的应用速度差不多是本地应用的0.5倍,损失并不是很大。但是对于节约开发成本来讲是很重要的。

 

本次就写这些吧,下回写一写有关环境配置的