タグ付けされた質問 「profiling」

1
コードのどの部分が最も頻繁に実行されるかを確認するにはどうすればよいですか?
何千行ものソースコードの中で最も頻繁に実行され、最も時間がかかるコードを確認したいと思います。これの目的は最適化のためです。 最適化には、コードのどの部分が最も頻繁に実行されるかを確認できることが重要です。これらの部分は、高速化のために焦点を合わせる必要があるためです。同時に、一部のコードは非常に頻繁に実行されますが、実質的に時間はかかりません。そのため、どのコードに最も時間がかかるかを確認することも重要です。 両方の長所は、実行されたすべての時間を含めて、コードにかかる時間を合計するプログラムになると思います(そのため、コード全体が最も遅くなる原因を見つけます)。これには一種のツールがありますか?

11
どこを最適化しますか?
速度を最適化するために2つの領域があります。 最も時間を費やしている場所 最も呼び出されるコード 最適化を始めるのに最適な場所はどれですか? 多くの場合、最も頻繁に呼び出されるコードは、既に実行時間が短いです。遅い、あまり呼ばれていない領域を最適化するか、またはより速く、頻繁に使用される領域の最適化に時間を費やしていますか?

1
プロファイリングツールが使用できない場合、プログラムのパフォーマンスを最適化するにはどうすればよいですか?
現在、パフォーマンスを改善したいOpenGlプログラムに取り組んでいます。パフォーマンスは大丈夫ですが、強力な専用GPUでは理想的ではありませんが、統合グラフィックス(<10 fps)ではひどいです。通常のプログラム(CPUベース、OpenGlまたは他のGPU APIなし)では、プログラムでプロファイラー(おそらくCLionに組み込まれているもの)を実行し、ほとんどの時間を費やしている場所を確認してから、より良いアルゴリズムで作業しますそれらのエリアの場合、またはそのエリアが呼び出される量を減らす方法を見つけます。 OpenGlプログラムでこの手法を使用すると、メインスレッド(最適化したいスレッド)でのプログラムの時間の大部分(約86%)がOpenGlドライバーの.soファイルに費やされていることがわかります。さらに、プログラムの実行中のCPU使用率は非常に低いですが、GPU使用率は95%から100%の間で停止します。これらの情報を総合すると、ボトルネックがGPUにあるため、最適化する必要があることがわかります。 ここで問題が発生します。ただし、プロファイラーを使用して私の最適化を導く通常のテクニックは、特定のGPUプロファイラーがないと機能しません。そのため、GPU処理時間が費やされている場所を教えてくれるプロファイラーを見つけるために、いくつかの調査を行いました。リモートで使用できるものは何も見つかりませんでした。すべてがWindowsのみ(Linuxのみを実行しており、プログラムはまだWindowsに移植されていません-ずっと先までは移植されません)であるか、更新されていないか、および/またはこのプロジェクトです。 そのため、私は質問します。関連するプロファイラーが存在しない場合、プログラムのパフォーマンスをどのように最適化できますか?問題がどこにあるのかを推測し、そこから最適化を試みましたが、最適化(錐台カリング)によってGPUの作業が約半分になっていることが確認できたとしても、違いはありませんでした。良い答えは、Linux上のOpenglに適用可能なプロファイリング手法を提供するか、プロファイラーなしで機能する手法を提供することです。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.