最近我玩了很多Javascript(Chrome),我想到了一些事情。
exchange time with space
的一个最佳实践,基本上是首次缓存高级函数的机器代码,并在下次运行缓存。所以我可以说,如果以FP方式编写代码并由具有JIT功能的VM运行,应用程序会更快。
答案 0 :(得分:0)
关于这个主题的好读物在这里:http://thibaultlaurens.github.io/javascript/2013/04/29/how-the-v8-engine-works/
特别是讨论V8如何编译和注入JIT代码的部分
V8如何编译JavaScript代码?
V8有两个编译器!
可以为任何JavaScript生成良好代码的“完整”编译器:好 但不是很好的JIT代码。此编译器的目标是生成代码 很快。为了实现其目标,它不进行任何类型分析和 对类型一无所知。相反,它使用内联缓存 或“IC”策略,以在程序时细化关于类型的知识 跑。 IC非常高效,速度提高了20倍。
优化编译器,可为大多数人生成出色的代码 JavaScript语言。它稍后会重新编译热门功能。该 优化编译器从内联缓存中获取类型并生成 关于如何更好地优化代码的决定。但是,有些 语言功能尚不支持,如try / catch块for 实例。 (try / catch块的解决方法是编写“非 稳定“代码到函数中并在try中调用函数 块)
简而言之,您最快的代码是在定义对象或原型函数定义后不会修改的代码