为什么V8不能优化try-catch-finally?
为什么V8无法优化try-catch-finally模块,当其他突出的运行时(SpiderMonkey,Chakra)似乎对此没有问题?
除了这个问题的优先级相对较低之外,没有什么特别的原因。
这将在某些时候进行优化
检查出铬v8问题1065
如果您的目标是v8,您可以将try-catch移动到单独的函数中,但是只有在真正的性能问题时才应该这样做,否则只是过早的优化。
“程序员浪费了大量的时间来思考或者担心程序中非关键部分的速度,而这些效率的尝试实际上在考虑debugging和维护时会产生很大的负面影响,我们应该忘记小的效率, 97%的时间:不成熟的优化是万恶的根源,但我们不应该放弃那个关键的3%的机会“ – Donald Knuth
最有可能永远不会被优化的唯一function是
- 带有“debugging器”语句的函数
- 调用eval()的函数
- 包含“with”语句的函数
其他与优化有关的问题应该在某些时候被固定。