为什么V8不能优化try-catch-finally?

为什么V8无法优化try-catch-finally模块,当其他突出的运行时(SpiderMonkey,Chakra)似乎对此没有问题?

除了这个问题的优先级相对较低之外,没有什么特别的原因。

这将在某些时候进行优化

检查出铬v8问题1065

如果您的目标是v8,您可以将try-catch移动到单独的函数中,但是只有在真正的性能问题时才应该这样做,否则只是过早的优化。

“程序员浪费了大量的时间来思考或者担心程序中非关键部分的速度,而这些效率的尝试实际上在考虑debugging和维护时会产生很大的负面影响,我们应该忘记小的效率, 97%的时间:不成熟的优化是万恶的根源,但我们不应该放弃那个关键的3%的机会“ – Donald Knuth

最有可能永远不会被优化的唯一function是

  • 带有“debugging器”语句的函数
  • 调用eval()的函数
  • 包含“with”语句的函数

其他与优化有关的问题应该在某些时候被固定。