关于Asm.js的一些基本介绍和它的实现

Asm.js是Mozilla为解决JavaScript执行效率问题提出的一种语法标准,源于Emscripten项目。它通过模拟C/C++的数据计算来提升性能,但仅处理部分数值类型。随着WebAssembly的标准化,Asm.js的角色逐渐被取代,但其对提升JavaScript性能的贡献不容忽视。目前,WebAssembly已成为浏览器厂商共同推动的先进技术,旨在开创JavaScript的新纪元。
摘要由CSDN通过智能技术生成

Asm介绍

asm是mozilla提出的一套基于JS的语法标准,由 Mozilla 的 Emscripten项目催生而来,主要为了解决js执行效率问题,尤其是通过Emscripten转换过来的js代码效率。那什么是Emscripten和asm,关于它的诞生,最主要的原因就是js执行效率低下。(目前asm已经由几家公司进行标准化,形成了WebAssembly,关于WebAssembly的内容,可以去看下这篇关于WebAssembly的介绍

诞生

熟悉js历史的人应该知道,js的最初的诞生是非常仓促并且面向非专业编程人士的,例如那些网页设计人员。在设计的时候便决定将它设计成一个解释型语言,这样你就不用去理解编译器这个东西,当然也不必要有类型,因为你要了解类型你又要去了解cpu工作原理,因为不同类型对应不同字长的CPU指令。除此之外,你会发现许多其他语言高级的东西,似乎都在js中找不到。。

这样设计的好处自然是有的,它的确是一门上手简单语言。当然,后来的事情我们也知道了,也许是时势造英雄,javascript的诞生简直是极大的改变了当时浏览器。后来,所有浏览器都会使用javascript,到现在,甚至服务器上也出现了node.js。使用的多了,最初仓促赶工的一些弊端自然就暴露出来了。最大的问题就是性能。所以,目前越来越多的技术诞生其目的就是为了解决那糟糕的js性能问题。

所以,Emscripten和asm.js诞生了。Emscripten也是mozilla提出的一个实验性项目,可能它的诞生就是因为写惯了后端c++的工程师,有时候需要去写个前端页面,发现不得不去学习下javascript,学完了发现你还得了解茫茫多的框架和api。

所以,它们为了不学javascript,弄了个Emscripten出来,Emscripten目的就是将c/c++程序编译成js或者H5应用,听起来是不是很厉害。然后发现,c++是强类型语言,执行效率自然很快,但是转换成js后那执行速度简直是差的十万八千里。所以呢,就诞生了asm.js,asm的产生就是为了提高Emscripten转换后的代码执行效率的。

但是呢,实际上asm只能处理被挑出来的几种数值类型,对于像字符串,布尔型这种,该怎么样还是怎么样。asm对于运行计算能力的提示是很大的,所以,我们现在可以看到几个asm的demo就是由诸如游戏引擎之类的提供的。想想以后说不定开个网页就能玩大型3d游戏了。。简直是国产网游的福音。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值