是否有关于如何为v8编写快速,高效的代码(特别是node.js)的好教程?
我应该避免使用哪些结构? v8优化的成语是什么?
答案 0 :(得分:18)
根据我的经验:
.bind()
new Object()
和new Array()
目前有点快(MICRO优化,除非你用{}
和[]
写一些疯狂的编码器棒我的规则:
如果您是JS专家并且已经将所有good practices应用于您的代码,那么您几乎无法采取任何措施来提高性能。
如果遇到性能问题:
答案 1 :(得分:0)
文档给出了一个很好的答案:http://code.google.com/apis/v8/design.html
答案 2 :(得分:0)
Understanding V8是来自nodecamp.eu的一组幻灯片,并提供了一些有趣的提示。特别是,我发现避免“词典模式”的注释很有用,即如果你保持对象的“形状”不变并且不向它们添加任意属性,它会有所帮助。
您还应该使用--crankshaft --trace-opt --trace-bailout
运行节点(仅在64位平台上需要--crankshaft
,例如OS X),以查看V8是否在JITing某些功能上“失败”。还有大量其他跟踪选项,包括--trace-gc
和各种其他GC跟踪,可用于优化。
如果您对上面的幻灯片有任何具体问题,请告诉我,因为它们有点简洁。 :-)他们不是我的,但我已经对他们所涉及的领域进行了一些研究。