由于Node.js使用V8 js引擎,所以我认为它的工作方式与v8相同,并且只在函数或代码被调用多次时优化/jit编译函数或代码。
考虑到我正在制作一台服务器,并且我希望从代码中获得最好的性能,而且内存不是问题,是否有办法“强迫”我的所有代码从第一次运行开始就被编译和优化以提高性能?
发布于 2019-12-14 22:41:10
这里是V8开发人员。通过让V8完成它的任务,您可以获得最好的性能。(我们非常关心性能,我们构建的V8使得开箱即用的配置为您提供了最佳的性能。)
出于测试目的,确实有一个标志强制在第一次执行时对所有代码进行“优化”编译。但是“优化”确实需要引用,因为这样做意味着大大降低了的性能。原因不仅在于编译时间,还在于对于像JavaScript这样的动态语言来说,创建优化的代码非常依赖于首先观察类型反馈的。您可以在没有类型反馈的情况下将代码提供给优化编译器,但是它无法完成很好的工作--它有两个选择:要么生成能够处理任何类型的通用代码(该代码将与非优化代码一样快),要么生成对它将遇到的类型进行随机猜测的代码(这意味着有几乎100%的可能性会出现一些猜测错误,代码必须在第一次执行时被丢弃)。无论哪种方式,结果的性能都比常规的方法差。
如果您希望能够提前优化代码,请用C++或Rust、Go等编写服务器;-)
https://stackoverflow.com/questions/59338370
复制相似问题