1

私は、パフォーマンス プロファイラが間違っていることを読んだり、経験したりしたことがあります。場合によっては、特定の関数に対して誤った実行時間を生成したり、実際には存在しないコール グラフを表示したりすることがあります。これらのエラーは一般的にどのように発生し、これらのエラーの主な原因は何ですか?

4

1 に答える 1

1

多くのものがプロファイラーと呼ばれ、メモリの割り当てからパイプラインのフラッシュまで、さまざまなものを測定するため、問題は広範です。

問題の一部は概念的なものです。たとえば、あなた(および他の人)は「特定の機能の実行時間が正しくない」と言います。その「ランタイム」という用語には定義が必要です。「すべての呼び出しで合計された合計実行時間」または「呼び出しごとの平均実行時間」を意味しますか? 呼び出された関数が含まれていますか? それは単に CPU 時間ですか、それとも壁時計の経過時間ですか? これは、あいまいな思考の一例にすぎません。

多くの人が抱えている、より深い概念上の問題があります。彼らは「遅い機能」を探していると考えています。彼らがそのアイデアをどこから得たのかはわかりません。おそらくクラスの責任者の誰かからです。高速化の機会は特定の機能に限定されません。速度が目的である場合、そうでない機能を無視することはできません。

また、彼らは測定している限り、それらの測定値の精度が重要であると考えています。速度のバグを見つけるのには役立ちません。

私見ですが、プロファイラーの欠点を診断しようとするのではなく、1)主題に関するすべての神話を解き放ち、2) ポジティブを強調し、何機能するかを学ぶ必要があります。

于 2013-04-24T13:12:59.523 に答える