前往顾页
以后地位: 主页 > 收集编程 > Jsp实例教程 >

JavaScriptCore vs. V8机能测试

时候:2015-07-22 22:18来源:知行网www.zhixing123.cn 编辑:麦田守望者

近几年跟着Google V8瞪起,关于JavaScript引擎机能的争辩就没有停止过。跟着愈来愈多的利用将JavaScript引擎替代成V8,JavaScriptCore仿佛处在一个同仇敌忾的状况,不管是从接口易用性还是从机能方面,饱受诟病和摈斥。之前插手ARM的一个关于机能优化的会议的时候,当ARM技术同窗听到另有人在利用JavaScriptCore的时候,感到非常的差别。那么JavaScriptCore是不是是年夜家想想中的那么差呢?V8是不是是就已在各个方面超出了JavaScriptCore呢?关于这个话题,我也想了好久,一向都感觉对JavaScriptCore和V8了解的不敷透辟,不敢妄加评判。刚好明天周末杭州下雨,也没有其他的好的去向,筹算好好的阐发下这个问题。

固然JavaScriptCore和V8都别离推出了本身的跑分东西,但我小我以为这个跑分东西意义不是很年夜,并且各家都针对本身的特性来点窜跑分东西。别的,业界也有很多人站出来攻讦,说纯真的测试JavaScriptCore和V8的机能没成心义,因为这些测试都只是纯真的测试JavaScript在不合引擎上的performance,而对浏览器而言,衬着和DOM操纵才是真正影响用户体验的。对这一点,我也不太附和。因为现在已有愈来愈多的利用和框架将JavaScript引擎从浏览器中剥分开来,特别是在Google V8崛起以后,JavaScript引擎开端逐步自力出来,而不是非要跟浏览器绑定,比方Nodejs。在JavaScript引擎自力方面,JavaScriptCore就显得比较减色了,目前JavaScriptCore还是跟WebKit绑定的非常紧密,甚职苄些首要的特性需求依靠于WebKit,比方JavaScriptCore的GC机制,使得JavaScriptCore剥离出来比较坚苦,还需求点窜源码,而V8则显得非常自力。

对JavaScript引擎的机能终究表示在时候和内存耗损。时候的耗损一方面是JS的一些运算逻辑,和函数调用。经由过程一些压力测试,在Android平台上对JavaScriptCore和V8在时候耗损上的机能对比图以下:

 

Alt text

 

  • empty-loop 空循环100000次(毫秒)
  • call-js-func 调用一个空的js函数100000次耗时(毫秒)
  • call-native-func 调用native体例100000次耗时(毫秒)

 

从下面的对比图可以发明,除调用native体例以外,其他几个V8都要好过JavaScriptCore. 在2008年今后,JavaScriptCore有一些重年夜的重构,这些重构对JavaScriptCore的机能有重年夜的进步。JavaScriptCore会按照同一个函数调用次数来做针对性的优化。V8相对JavaScriptCore的上风在于利用了建立Hidden class的技术,使得可以或许疾速建立工具和疾速拜候属性。JavaScriptCore和V8都做到了可以静态将JavaScript代码编译成汇编。别的,V8在多线程方面措置的要比JavaScriptCore好很多。别的,按照我本身的项目经历,发明JavaScriptCore的内存收受领受效力要比V8要高,一样一段JavaScript代码,在V8上的均匀内存占用要比JavaScriptCore高。

顶一下
(9)
100%
踩一下
(0)
0%
------分开线----------------------------
标签(Tag):JavaScriptCore
------分开线----------------------------
颁发评论
请自发遵循互联网相关的政策法规,严禁公布色情、暴力、革命的谈吐。
评价:
神色:
考证码:点击我更换图片
猜你感兴趣