v8 使用的两篇文章
2016-07-25 13:49
190 查看
http://www.tuicool.com/articles/m2e2i2
http://www.ibm.com/developerworks/cn/opensource/os-cn-v8engine/ http://www.cppblog.com/woaidongmao/archive/2010/05/17/115577.html
脚本所需的类和方法已经装备完毕,接下来就可以做我们的速度测试了。
下面的测试速度是在我的电脑上,Core2 T7100, 1G内存上10次测试取平均的结果,编译环境为VC2005 Express,Release方式。单位为秒。
从图上可以直观地看出,V8的速度要比SpiderMonkey快,尤其是脚本一,V8的速度是SpiderMonkey的10倍还多。
总结
就执行速度而言,V8具有压倒性的优势,这和Google的官方宣传是一致的。
大 小方面,在VC的Release下,V8的动态编译库大小为1.39M;SpiderMonkey的动态编译库大小为708k,SpiderMonkey 胜出。静态编译?嗯,还是算了吧,偶编译的静态V8.lib足足有100M,和程序链接时要花费10秒钟的时间,调试程序太郁闷了~~。
对于编程简易程度来说,两方各有优势,这个因人而异,我觉得SpiderMonkey的概念更简洁一点;V8的Template、Scope、Handle等东东还是需要一点时间去理解的。而且还有一点,SpiderMonkey的官方文档比V8的丰富。
如 果各位细心的话,可以发现V8版的addMyClass没有“析构”函数,也就是说在脚本里建立出来的MyClass是存在内存泄漏的!我花了很长时间, 查了N多资料也没找到如何在V8的GC工作时回收InternalField里的数据(经试验,Persistent的MakeWeak方法无效)。目前 的解决方法只有为类提供一个destory函数,在脚本中显式调用来回收,不过这样就享受不了垃圾回收了。如果各位有更好的方法,请留言提出哦,非常感 谢!
最后我们还得提到IE的脚本引擎,调用IE脚本引擎的优点是操作系统集成,所以不用附带一个DLL或链接一大块脚本引擎,这样发布的软件会小一点点,而且ActiveX
Scripting技术(请参考本站相关文章)对于熟悉COM编程的人来说编写代码也很简单。但是~~缺点也很明显,速度不是慢,而是相当慢~~本来偶还想用它也运行一下《脚本一》的代码作为参考的,结果等了一分种无响应后郁闷地强制退出~~
MDN上的SpiderMonkey文档确实有点过时了,MDN相当大一部分是社区爱好者自发贡献的,楼主发现什么问题也可以直接去改。
SpiderMonkey的api确实很不稳定,一直在改,而且官方也说目前不保证api的稳定,有相当大一部分api会从目前的c风格迁移到c++风格,包括定义属性,获取函数参数等等这些还会再改,但是他们已经有计划在将来逐渐稳定下来。
风险我觉得应该没什么。。SpiderMonkey还是有一定社区活跃度的,官方的开发计划也排了很远了,就现在对ES6的支持程度SpiderMonkey可能也远超V8。WP8确实没有官方支持,不过MS Open
Tech已经帮我们搞定了,再等等应该不远了(也许就几天了)。
现在jsb里使用的是从Firefox 28源码里扒出来的版本,不是官方正式发布的版本,等v31一旦发布会升级上去。
http://www.ibm.com/developerworks/cn/opensource/os-cn-v8engine/ http://www.cppblog.com/woaidongmao/archive/2010/05/17/115577.html
脚本所需的类和方法已经装备完毕,接下来就可以做我们的速度测试了。
下面的测试速度是在我的电脑上,Core2 T7100, 1G内存上10次测试取平均的结果,编译环境为VC2005 Express,Release方式。单位为秒。
从图上可以直观地看出,V8的速度要比SpiderMonkey快,尤其是脚本一,V8的速度是SpiderMonkey的10倍还多。
总结
就执行速度而言,V8具有压倒性的优势,这和Google的官方宣传是一致的。
大 小方面,在VC的Release下,V8的动态编译库大小为1.39M;SpiderMonkey的动态编译库大小为708k,SpiderMonkey 胜出。静态编译?嗯,还是算了吧,偶编译的静态V8.lib足足有100M,和程序链接时要花费10秒钟的时间,调试程序太郁闷了~~。
对于编程简易程度来说,两方各有优势,这个因人而异,我觉得SpiderMonkey的概念更简洁一点;V8的Template、Scope、Handle等东东还是需要一点时间去理解的。而且还有一点,SpiderMonkey的官方文档比V8的丰富。
如 果各位细心的话,可以发现V8版的addMyClass没有“析构”函数,也就是说在脚本里建立出来的MyClass是存在内存泄漏的!我花了很长时间, 查了N多资料也没找到如何在V8的GC工作时回收InternalField里的数据(经试验,Persistent的MakeWeak方法无效)。目前 的解决方法只有为类提供一个destory函数,在脚本中显式调用来回收,不过这样就享受不了垃圾回收了。如果各位有更好的方法,请留言提出哦,非常感 谢!
最后我们还得提到IE的脚本引擎,调用IE脚本引擎的优点是操作系统集成,所以不用附带一个DLL或链接一大块脚本引擎,这样发布的软件会小一点点,而且ActiveX
Scripting技术(请参考本站相关文章)对于熟悉COM编程的人来说编写代码也很简单。但是~~缺点也很明显,速度不是慢,而是相当慢~~本来偶还想用它也运行一下《脚本一》的代码作为参考的,结果等了一分种无响应后郁闷地强制退出~~
MDN上的SpiderMonkey文档确实有点过时了,MDN相当大一部分是社区爱好者自发贡献的,楼主发现什么问题也可以直接去改。
SpiderMonkey的api确实很不稳定,一直在改,而且官方也说目前不保证api的稳定,有相当大一部分api会从目前的c风格迁移到c++风格,包括定义属性,获取函数参数等等这些还会再改,但是他们已经有计划在将来逐渐稳定下来。
风险我觉得应该没什么。。SpiderMonkey还是有一定社区活跃度的,官方的开发计划也排了很远了,就现在对ES6的支持程度SpiderMonkey可能也远超V8。WP8确实没有官方支持,不过MS Open
Tech已经帮我们搞定了,再等等应该不远了(也许就几天了)。
现在jsb里使用的是从Firefox 28源码里扒出来的版本,不是官方正式发布的版本,等v31一旦发布会升级上去。
相关文章推荐
- 加载3种状态架构
- Struts2学习(一)
- Java提高篇——通过分析 JDK 源代码研究 Hash 存储机制
- x86中的页表结构和页表项格式
- 网络安全技能图谱
- 栈与队列
- viewPager+radiogroup实现关联
- R第二问 CentOS6.5安装 yum [Errno 256] No more mirrors to try
- 图像类型与图片格式
- Scanner类中的nextLine()产生的换行符问题
- Ruby中使用each和collect进行迭代的用法
- 服务器硬件
- linux设备驱动程序注册过程详解
- spl处理文件(文件详细信息、文件遍历、查询指定行、写入CSV文件)
- win下如何在yii框架下面使用sphinx
- Codeforces Round #281 (Div. 2) B 模拟
- 对称加密与非对称加密的区别
- java中的内部内总结
- 多线程同步
- android通过获取摄像头照片,实时与点传输