是否可以强制 Node.js 对代码进行 JIT 编译?
Is it possible to force Node.js to JIT compile code?
由于 Node.js 使用 V8 js 引擎,我想它的工作方式与 v8 相同,只有 optimizes/jit 在 CPU 时编译一个函数或一段代码密集或被多次调用。
考虑到我正在制作一个服务器,我想从我的代码中获得尽可能好的性能,内存不是问题,有没有办法 "force" 我所有的代码从它第一次运行的那一刻起就进行了 JIT 编译和性能优化?
这里是 V8 开发人员。让 V8 做它的事情,你可以获得最好的性能。 (我们非常关心性能,我们构建 V8 时开箱即用的配置可以为您提供最佳性能。)
出于测试目的,确实有一个标志强制 "optimized" 在首次执行时编译所有代码。但是 "optimized" 确实需要用引号引起来,因为这样做意味着 比通常情况下 显着 性能 低 。原因不仅是编译时间,而且对于像 JavaScript 这样的动态语言,创建优化代码 关键取决于 首先观察类型反馈。您 可以 将没有类型反馈的代码提供给优化编译器,但它无法做好工作——它有两个选择:要么生成可以处理任何类型的通用代码(这将与未优化的代码一样快),或者生成随机猜测它将遇到的类型的代码(这意味着 some 猜测的可能性几乎是 100%将是错误的,代码必须在第一次执行时被丢弃)。无论哪种方式,最终的性能都比常规的做事方式差。
如果您希望能够提前优化代码,请使用 C++、Rust 或 Go 等编写您的服务器 ;-)
由于 Node.js 使用 V8 js 引擎,我想它的工作方式与 v8 相同,只有 optimizes/jit 在 CPU 时编译一个函数或一段代码密集或被多次调用。
考虑到我正在制作一个服务器,我想从我的代码中获得尽可能好的性能,内存不是问题,有没有办法 "force" 我所有的代码从它第一次运行的那一刻起就进行了 JIT 编译和性能优化?
这里是 V8 开发人员。让 V8 做它的事情,你可以获得最好的性能。 (我们非常关心性能,我们构建 V8 时开箱即用的配置可以为您提供最佳性能。)
出于测试目的,确实有一个标志强制 "optimized" 在首次执行时编译所有代码。但是 "optimized" 确实需要用引号引起来,因为这样做意味着 比通常情况下 显着 性能 低 。原因不仅是编译时间,而且对于像 JavaScript 这样的动态语言,创建优化代码 关键取决于 首先观察类型反馈。您 可以 将没有类型反馈的代码提供给优化编译器,但它无法做好工作——它有两个选择:要么生成可以处理任何类型的通用代码(这将与未优化的代码一样快),或者生成随机猜测它将遇到的类型的代码(这意味着 some 猜测的可能性几乎是 100%将是错误的,代码必须在第一次执行时被丢弃)。无论哪种方式,最终的性能都比常规的做事方式差。
如果您希望能够提前优化代码,请使用 C++、Rust 或 Go 等编写您的服务器 ;-)