Node.jsはV8jsエンジンを使用しているので、v8と同じように機能し、CPUを集中的に使用するか、何度も呼び出される場合にのみ、関数またはコードの一部を最適化/ jitコンパイルします。
サーバーを作成していて、コードから可能な限り最高のパフォーマンスを引き出したいと考えており、そのメモリは問題ではないことを考えると、すべてのコードをJITコンパイルしてパフォーマンスを最適化する方法はありますか?それが最初に実行された瞬間から?
V8開発者はこちら。V8に任せることで、可能な限り最高のパフォーマンスを得ることができます。(私たちはパフォーマンスに重点を置いており、すぐに使用できる構成が可能な限り最高のパフォーマンスを提供するようにV8を構築しています。)
テストの目的で、最初の実行時にすべてのコードの「最適化された」コンパイルを強制するフラグが実際にあります。ただし、「最適化」は実際には引用符で囲む必要があります。これを行うと、通常よりもパフォーマンスが大幅に低下するためです。その理由は、コンパイル時だけでなく、JavaScriptのような動的言語の場合、最適化されたコードの作成は、最初に型フィードバックを観察することに大きく依存するという事実にもあります。あなたができる最適化コンパイラに型フィードバックなしでコードをフィードしますが、それは良い仕事をすることができません-それは2つの選択肢があります:任意の型を処理できるジェネリックコードを生成する(最適化されていないコードとほぼ同じくらい速い) )、または遭遇するタイプについてランダムに推測するコードを生成します(つまり、推測が間違っている可能性がほぼ100%あり、最初の実行時にコードを破棄する必要があります)。いずれにせよ、結果として得られるパフォーマンスは、通常の方法よりも劣ります。
事前にコードを最適化できるようにしたい場合は、サーバーをC ++、Rust、Goなどで記述してください。;-)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加