パフォーマンスキラーを見つける
オンライン サービスのパフォーマンスの最適化は、ほとんど迷信に近い作業です。プログラマーのグループが大量の理解できないコードに直面し、相手がすべての CPU を使い果たしているかどうかをお互いに推測しました。ログの記録に多くの時間を費やし、昼夜を問わず大量のログを調べて、パフォーマンスの要因を見つけようとします。
しかし、fibjs を使用すると、これが簡単になります。fibjs は強力な CPU とメモリ プロファイラーをサポートしており、非常に使いやすいからです。
ロギング
fibjs での CPU プロファイラーの起動は非常に簡単で、起動時にオプションを追加するだけです--prof
。デフォルトのログ間隔は 1000ms ですが、最適化が進むにつれて、より精度の高いログ分析が必要になる場合は、 を使用して--prof-interval
間隔を設定できます。次の例では、fibjs 作業ログを 10 ミリ秒ごとに記録します。
1fibjs --prof --prof-interval=10 main.js
処理ログ
操作が正常に終了した後、または ctrl_c を使用してプロセスを終了すると、現在のディレクトリにログ ファイルが生成されます。ファイル名は ですfibjs-xxxx.log
。この時点で、生成されたログを処理するために使用できます--prof-process
。
1fibjs --prof-process fibjs-xxxx.log prof.svg
操作が完了したら、ブラウザを使用して prof.svg を開き、このログのフレーム グラフを表示します。 クリックするとフルサイズの画像が表示されます。フルサイズの画像では、マウスを操作して詳細を表示できます。情報: svg 教授。
火炎図の解釈
生成されたフレーム グラフでは、各カラー ブロックが記録ポイントを表します。カラー ブロックが長いほど、記録される回数が多くなります。各線は呼び出しスタックの層を表し、層が多いほど、より多くの層が呼び出されます。スタックが呼び出されます。カラーブロックが下になるほど、機能が独創的になります。
カラーブロックには赤と青の2種類があります。fibjs プロファイラでは、赤は JavaScript 操作を表し、青は io 操作またはネイティブ操作を表します。解決する必要がある問題に応じて、重点を置く必要がある領域は異なります。たとえば、CPU 使用率が高い問題を解決する必要がある場合は、赤色のブロックに注意を払う必要があり、アプリケーションの CPU 使用率は低いが応答が遅い場合は、青色のブロックに注意を払う必要があります。上部近くのカラーブロックが大きいほど、より多くの注意と最適化が必要になります。
👉【同期と非同期】