複雑性分析
複雑性分析ビューでは、選択したメソッドのアルゴリズムの複雑性をメソッドパラメータに応じて調査することができます。
ビッグO記法の詳細を更新するには、 アルゴリズムの複雑性の入門 と一般的なアルゴリズムの複雑性の比較ガイド を読むことをお勧めします。
まず、モニターするメソッドを1つ以上選択する必要があります。
各メソッドに対して、long
型の戻り値を持つスクリプトを入力できます。この戻り値が現在のメソッドコールの複雑性として使用されます。例えば、java.util.Collection
型のメソッドパラメータがinputs
という名前の場合、スクリプトはinputs.size()
となります。
複雑性の記録はCPUの記録とは独立しています。複雑性分析ビューで直接、または 記録プロファイルやトリガーアクションを使用して複雑性の記録を開始および停止できます。 記録が停止された後、結果を示すグラフが表示され、x軸に複雑性、y軸に実行時間がプロットされます。メモリ要件を削減するために、JProfilerは異なる複雑性と実行時間を共通のバケットにまとめることができます。上部のドロップダウンで、異なる設定済みのメソッド間を切り替えることができます。
グラフはバブルチャートで、各データポイントのサイズはその中の測定数に比例します。すべての測定が異なる場合、通常の散布図が表示されます。反対に、すべてのメソッド呼び出しが同じ複雑性と実行時間を持つ場合、1つの大きな円が表示されます。
少なくとも3つのデータポイントがある場合、一般的な複雑性を持つカーブフィットが表示されます。JProfilerは、いくつかの一般的な複雑性からカーブフィットを試み、最初に最適なフィットを表示します。カーブフィットのドロップダウンで他のカーブフィットモデルを表示することもできます。カーブフィットの説明に埋め込まれたR2値は、フィットの良さを示します。ドロップダウン内のモデルはR2に関して降順にソートされているため、最適なモデルは常に最初の項目です。
R2は負の値を取ることができることに注意してください。これは単なる記法であり、実際に何かの二乗ではありません。負の値は、一定のラインフィットよりも悪いフィットを示します。一定のラインフィットは常にR2値が0であり、完全なフィットは1の値を持ちます。
現在表示されているフィットのパラメータをエクスポートするには、エクスポートダイアログで「プロパティ」オプションを選択します。品質保証環境での自動分析のために、 コマンドラインエクスポートはプロパティ形式をサポートしています。