ガイド開発ガイド

パフォーマンスキラーを見つける

オンラインサービスのパフォーマンスの最適化はほとんど迷信的です。プログラマーのグループは、理解できない大量のコードに直面し、反対側がすべてのcpuを使用しているかどうかを推測しました。ログの記録に多くの時間を費やし、昼夜を問わず大量のログをめくり、パフォーマンスキラーを見つけようとします。

ただし、fibjsを使用すると、これはすべて簡単になります。 fibjsは強力なcpuとメモリプロファイラーをサポートしており、非常に便利に使用できるためです。

ログ

Fibjsは、cpuプロファイラーの起動が非常に簡単で、起動時に--profオプションを追加するだけです。デフォルトのログ間隔は1000msです。最適化が深まるにつれて、ログをより正確に分析する必要があります。このとき、 --prof-interval使用して--prof-interval設定できます。次の例では、fibjs作業ログが10ミリ秒ごとに記録されます。

1
fibjs --prof --prof-interval=10 main.js

処理ログ

操作が正常に終了した後、またはプロセスがctrl_cで終了した後、ログファイルが現在のディレクトリに生成されます。ファイル名はfibjs-xxxx.logです。このとき、 --prof-process使用して生成されたログ--prof-process処理できます。

1
fibjs --prof-process fibjs-xxxx.log prof.svg

操作の最後に、ブラウザでprof.svgを開いて、このログのフレーム図を表示します。教授クリックするとフルサイズの画像が表示されます。フルサイズの画像では、マウスを使用してより詳細な情報を表示できます: prof.svg

炎図の解釈

生成されたフレームグラフでは、各カラーブロックは記録ポイントを表します。カラーブロックが長いほど、記録される回数が多くなります。各行は呼び出しスタックのレイヤーを表し、レイヤーが多いほど、より多くのレイヤーが呼び出されます。スタックの配置が逆になり、カラーブロックが低いほど、元の機能が多くなります。

カラーブロックには、赤と青の2種類があります。 fibjsのプロファイラーでは、赤はJavaScript操作を表し、青はio操作またはネイティブ操作を表します。解決する必要のある問題に応じて、焦点を当てる必要のある領域は異なります。たとえば、CPU占有率が高いという問題を解決する必要がある場合は、この時点で赤色のブロックに注意を払う必要があります。アプリケーションの場合、cpuの占有率は高くありませんが、応答が遅い場合は、青色のブロックに注意を払う必要があります。上部近くのカラーブロックが大きいほど、それを考慮して最適化する必要があります。