6

ここで言及されているパフォーマンス プロファイラーのいくつかを調べました。しかし...

  • プロファイリングするアセンブリが多数あり、プロファイリングするアセンブリに制限があるため、EQATec は機能しませんでした。無料のライセンスを取得するのはどれくらい面倒ですか? EQATec がマネージ コードとアンマネージ コードの両方をプロファイリングできることを誰かが保証してくれたら、私はそれを選びます
  • 「Profile native functions」を「True」に設定しても、SlimTune はマネージ コードのみをプロファイリングします。
  • XTE Profiler は無料ではなくなりました
  • 以前に購入した AQTime 6 のコピーがありますが、.NET 4.0 アプリをサポートしていないようです (アプリを起動することさえできません)。
  • Visual Studio 2010 Professional SP1 を使用しているため、Visual Studio プロファイラーはありません。
  • 「貧乏人のプロファイリング」(プログラムを何度も停止して、その場所を確認する) を試しましたが、ランダムな結果が得られすぎて、従来のプロファイリングに慣れてしまいました。

(私はこれに困惑して一日を過ごしました、もし私があまりにも否定的だったらごめんなさい)

更新: ソリューションをクリーンアップし、再度ビルドして、すべてのデバッグ情報 (.pdb) が実行可能ファイルと同じディレクトリにコピーされていることを確認した後、AQTime を再試行したところ、機能しました! マネージド コードとアンマネージド コードの両方の定期的なタイミング情報が表示されたので、問題は解決しました。ただし、私は有料のプロファイラーを使用しているため、xperf を調べるか、誰かが何か他のことを思い付くまで、質問は未解決のままです。

4

5 に答える 5

3

AQTime には、最新のプロファイラー (http://smartbear.com/products/free-tools/aqtime-standard/) の無料バージョンがあります。.Net 4 をサポートしていますが、ネイティブとマネージドの混合プロファイルを実行できるとは思えません。

本当に真剣に取り組んでいる場合は、Microsoft xperf ツール (http://msdn.microsoft.com/en-us/performance) を調べることができます。それらには急な学習曲線がありますが、無料であり、市販のプロファイラーが xperf ができることを実行できるとは思えません (インストルメンテーションは OS にあり、別のプロセスにはないため、Vista、win7、または win2K8 が必要です)。誰かが素敵な GUI を書いてくれるのを待っていますが、少し時間がかかります... ;-)

xperf はネイティブ コードをプロファイリングし、シンボルを結果ビューアーにロードできます。ただし、行ごとの粒度まで下がるとは思いません。.Net CLR プロバイダー (http://msdn.microsoft.com/en-us/library/dd264809.aspx) があります。xperf の優れた点は、パフォーマンスに影響を与えている可能性のある他のプロセスも表示できることです (これをオフにして、自分のプロセスのみをプロファイリングすることは自由です)。たとえば、不適切に記述された USB ドライバー、ウイルス スキャナー、またはファイアウォール ソフトウェアが原因で IO が遅いことを明らかにすることができます。従来のプロファイラーは低速の IO のみを表示するため、ボトルネックのないものに集中する必要がありました。

ちなみに、独自のプロファイラーを作成するために利用できる ICorProfilerCallback インターフェイスもあります (http://msdn.microsoft.com/en-us/library/s5ec0es1.aspx)。

于 2011-06-29T22:07:28.047 に答える
1

あなたの質問に対する答えは、「1つもありません」であると確信しています。

数か月前に多数の .NET プロファイラーを比較したところ、.NET とネイティブのプロファイリングを混在させることができたのは、AQTime ($599) と Glowcode ($499) だけでした。またはそう彼らは言う - 私はそれを試していません。

EQATEC、Visual Studio、ANTS、Jetbrains dotTrace、Yourkit、XteProfiler、Slimtune などはできなかったので、無料のプロファイラーがすぐに見つかるとは思えません。

于 2011-07-09T20:36:31.923 に答える
0

OP: 「XXXX がマネージ コードとアンマネージ コードの両方をプロファイリングできると誰かが保証してくれたら、私はそれを選びます」

当社のC# タイミング プロファイラーは、C# コードのコンパイル方法 (マネージド、アンマネージド、または混合) に依存しません。これはうまくいくはずです。

于 2011-06-28T22:21:32.697 に答える
0

Microsoft のCLR Profiler 4は無料です。試してみましたか?

プロファイラーの管理されていない部分で何を探しますか?

于 2011-06-28T22:33:17.023 に答える