回答
嗯,这几乎是不可能的回答。 如果你真的想了解有关内存使用情况,自动垃圾保藏中心和封闭的其他细节问题,从这里开始:http://jibbering.com/faq/notes/closures/
说实话,我不知道,好方法来帮助回答你的问题是衡量。
您可以使用JavaScript分析器,比如一个内置的谷歌浏览器,这里是一个mini intro to the google chrome profiler
您也可以使用Firebug profiler()
和time()
:http://www.stoimen.com/blog/2010/02/02/profiling-javascript-with-firebug-console-profile-console-time/
首先,产品如jQuery是建立在非常严重地使用闭合。 JQuery被认为是一段非常高性能的Javascript代码。这应该告诉你很多关于它使用的编码技术。
任何给定功能的准确表现,都将不同浏览器之间的不同,因为他们都有自己的脚本引擎,这些都是independantly书面和有不同的优化。但是他们都会做的一件事是试图对最常用的Javascript特性进行最佳优化。鉴于JQuery及其类似的前景,你可以打赌,关闭是非常严重的优化。在任何情况下,在最新一轮浏览器发布的情况下,他们的脚本引擎现在都具有足够高的性能,您很难在基本语言结构中找到任何导致重大性能问题的东西。
开销是一个静态函数声明不论大小可以忽略不计。唯一的性能损失来自函数内部定义的内容。
是的,你将有大的闭包含有很多变量,但除非你在函数中声明了几万个私有变量,或者执行该函数几万次,那么你将不会注意到有什么不同。
这里真正的问题是,如果你为多个较小的功能拆分功能,你会发现的性能提升?答案是否定的,实际上你应该看到一个小的性能减少有更多的开销,虽然你的内存分配应该至少能够收集一些未使用的变量。
无论哪种方式,JavaScript是最常只有陷入了明显昂贵的任务,所以,直到你看到一个问题,我不会理会优化。
最后一行很关键 – Jason 2011-04-21 15:35:41
- 1. Java StringBuilder巨大的开销
- 2. 巨大的CPU开销的问题
- 3. Castle Active Record的开销是多少?
- 4. 我应该从包装功能期望多少开销
- 5. 多少表开销太多?
- 6. 在Actionscript 3中使用代理的性能开销是多少?
- 7. @synchronized(self)有多少开销?
- 8. f64的最大可能值是多少?
- 9. Rust的选项类型的开销是多少?
- 10. python numpy tolist()添加了多少开销?
- 11. msg_send调用会产生多少开销?
- 12. 连接池 - 它有多少开销?
- 13. SQL Server中sql_variant列开销的字节成本是多少?
- 14. 在Kotlin for Android中编写库的开销是多少?
- 15. 在.NET DataTable中存储数据的内存开销是多少?
- 16. REXX中length()的处理开销是多少?
- 17. 实体框架跟踪的开销是多少?
- 18. 是连接少模式需要更多的开销吗?
- 19. 在Android上使用AUTOINCREMENT for SQLite的开销是多少?
- 20. 与StructureMap等IoC容器相关的开销成本是多少?
- 21. iOS:调用Objective-C方法的处理开销是多少?
- 22. 与HTTP相比,使用HTTPS的开销是多少?
- 23. kafka的最小记录开销是多少?
- 24. 使用LINQ时数据库性能开销多少?
- 25. 分解大dropdownlist,以避免有一个巨大的功能
- 26. 评估功能多少次?
- 27. 与Geforce相比,Tesla的内核开销少了多少?
- 28. 标值功能选择进行性能上的巨大差异
- 29. 虚拟功能及其开销
- 30. 注销功能
你的意思是在内存或时间方面的开销? – quamrana 2011-04-21 14:52:44
我倾向于说可以忽略不计,特别是如果我们谈论1个功能 – BiAiB 2011-04-21 15:05:25
你应该创建自己的测试并看看。你可以尝试:http://jsperf.com/ – 2011-04-21 15:20:31