Boo*_*jaa 6 javascript performance jquery dojo google-closure-library
当我搜索Javascript库的性能时,我得到了许多站点,显示了以下流行库之间的性能比较
但在任何的基准,Google Closure Library是不包括在内.它是不是像任何其他标准库一样,据说它是一个程序式库.
我需要一些关于Closure库性能的基准测试.并且想要一个关于"在初学者阶段使用dojo并在某个中间阶段使用jQuery时切换到Closure库的建议"的建议
谷歌发布它在其所有应用程序(如Gmail等)中使用关闭库...性能非常好.这是因为图书馆吗?可以在JS中编写OO代码的中间javaScript编码器是否可以将Closure库用于非常高的级别,或者建议继续使用DOJO.
Closure Library非常接近Dojo的风格 - 实际上,当它最初开发时,作者从Dojo中获取灵感.
但是,Closure库的速度和功能来自Closure Compiler,它大大优化了JavaScript程序,以消除所有瓶颈(例如导航命名空间链).
我个人不喜欢它,因为它有损于基于Dojo类的构造(仅仅是为了满足编译器)的美妙性,所有那些goog.kitchen.sink.getMeACupOfTeaSoICanRelax()长命名空间使得编写(和阅读)JavaScript程序成为皇家的痛苦 - 事实上很长的名称空间都被编译器优化掉,因为你可以过度使用它们(对我来说)过度使用它们.
此外,它试图使JavaScript程序看起来尽可能多的OOP(也许是因为Google中有大量的Java程序员)意味着过度依赖OOP概念,如属性getter和setter以及避免许多有用的(和唯一的) )mixin的JavaScript功能.如果您是一名学习使用JavaScript编程的Java程序员,那么您将使用Closure Library在家中.这并不会让它有点优雅.
然而,它确实提供了坚如磐石的工业强度环境- 因为Google已经用它构建了巨大的网站.这是(在我个人看来)坚实而且运作良好的东西,但看起来很难看.
然而,Dojo也是坚如磐石的,但由于它是一个开源开发项目,因此更加不稳定.您决定是否要切换.
实际上,您也可以在高级模式下使用Dojo和Closure Compiler.有关如何操作的说明,请参阅此链接.根据我自己的测试,Closure Compiler编译的程序通常比缩小版本小25%(由于死代码消除),对于简单页面运行速度提高约20-30%,对于大页面运行速度提高约20-30%.
其他库都有自己的特点和怪癖,每个都平衡了可用性,灵活性和功能与性能.例如,jQuery在途中创建了许多jQuery对象,并且性能下降,特别是在旧版浏览器上.但是,现代浏览器,尤其是 谷歌Chrome实际上做了优化,因此使用jQuery的性能最低.
实际上你需要问问自己为什么需要JavaScript来快速运行.大多数现代浏览器已经非常快,因此对于库的选择而言,它实际上并不是一个非常重要的考虑因素.最好根据它是否适合您(以及您手头的任务)选择您的库,而不是在浏览器中运行速度快10ms.
如果您正在为移动设备编写网站,或者编写HTML5游戏,您可能需要挤压最后一滴性能(在游戏中)和/或尽可能多地节省资源(在移动设备中).在这种情况下,我发现使用Dojo然后使用Closure Compiler进行编译会产生这种情况的最佳组合之一.
| 归档时间: |
|
| 查看次数: |
2156 次 |
| 最近记录: |