まともな C# プロファイラーはありますか?[閉まっている]
質問
C# プロファイラーが必要です。
お金を払うことに抵抗はありませんが、注文を出すまでに時間がかかるため、無料か少なくとも試用版が付いているものが理想的です。
何かお勧めはありますか?
解決
次のことを試すことができます。
- nprof (無料だけどちょっと古い)
- プロフィールシャープ (オープンソース)
- .Netメモリプロファイラー (メモリリークに非常に適しています。試用版もあります)
編集:Nprof は次のように置き換えられました。 スリムチューン .Net 4.0 アプリケーションで動作します
他のヒント
私が使用した アリプロファイラ 1 年半前の大規模な C# プロジェクトでのことです。価格に見合った非常に優れたパフォーマンスを発揮し、より高価な競合製品のいくつかを上回りました。
ほぼ 1 行ごとの解像度でコストを計算します。
の EQATEC プロファイラー は非常に優れており、完全に無料です。セットアップと使用が簡単で、アプリケーションに大きなオーバーヘッドを追加することはないようです。今日使い始めたばかりですが、他の方法では発見できなかったいくつかのボトルネックをすでに発見しています。
私は包括的な管理を行っています .NET のプロファイラーのリスト SharpToolbox.com で。
そこでは、ここで提案されているツールなどが見つかり、それぞれのツールが提案する内容についての簡単な説明が付いています。
興味深いのは、Visual Studio の上位バージョンにこの機能があることについて誰も言及していないことです。実行プロファイリングにはこれで十分だと私は常々思っています。メモリプロファイリングには、すでに述べたMemory Profilerを使用しますが、 そうではありません 私が一般的に「プロファイラー」と表現するもの。
どのようなプロファイリングを行おうとしていたのでしょうか?
を使用しております アリプロファイラ 私が働いている場所。非常に詳細な情報をシンプルな方法で提供します。
を使用しております .NETメモリプロファイラ. 。ちょっと見苦しいですが、未解決の参照を見つけるのに非常に便利です。
もともと試してみたのですが Red Gate の ANTS プロファイラー これは非常に魅力的ですが、メモリ リークの観点から見ると、次の理由から最悪です。
1) とんでもなく遅いです。アプリケーションが記録を開始できる状態になるまでに 30 分かかりました (レッドゲートを使用しない場合は 20 秒かかります)。
2) Red Gate は独自のツールを独自のツールで実行する必要があります。2 つのスナップショットを完了するまでに、900MB のメモリが使用されていました。その後クラッシュしました:(
ただし、Red Gate ANTS のタイミング コンポーネントは印象的でした。些細な (フットプリントが小さい) アプリケーションを扱う場合を除き、メモリ プロファイラーを気にしないでください。
私は AQtime を使用していますが、一度も失望したことはありません。確か体験版があると思います。
2番目に行きます レッドゲートのANTSプロファイラー. 。私はこれを使用して、いくつかの本当に厄介なパフォーマンスの問題を追跡しましたが、使い方は非常に簡単で (学習曲線が低く)、理解しやすい方法で優れた詳細なデータが表示されました。値札はそれだけの価値がありますが、無料ではありません...
Patrick SmacchiaのAwesome Ndependは、静的分析を提供するのに最適です。
私は静的分析には NDepend を徹底的にお勧めしますが、提供される大量の情報を実際に分析し、すべての統計が実際に何を意味するのかを理解するには、おそらく 1 ~ 2 日の時間を確保する必要があることに注意してください。あなたのコード。
.NET メモリ プロファイラでうまくいきました
ここでは EQATEC プロファイラーがその役割を果たしました。
現在のリリースは、 シャープ開発 (3.1.1) 優れた統合プロファイラーがあります。これは非常に高速で、SharpDevelop IDE とその NUnit ランナーに非常によく統合されます。結果は、柔軟なツリー/リスト スタイルで表示されます (独自の選択を作成するには、LINQ を使用します)。表示されたメソッドをダブルクリックすると、ソースコードに直接ジャンプします。
現在はそれらを使用していません。私の友人は Ants プロファイラーを絶賛しています。有料製品であることは知っていますが、どれくらい高価かはわかりません。MVP を担当している場合は、それを利用して無料でライセンスを取得できる可能性があります。
ここでは、AQTime (パフォーマンスとメモリの両方) または ANTS (v4 パフォーマンス プロファイラーまたは v5 ベータ メモリ プロファイラー) を選択します。
私が見つけたのは、 .NETメモリプロファイラ 昨日、とても感動したと言わざるを得ません。
今日免許証を注文するつもりです。
メモリ使用量のプロファイリングにはあまり適していませんが、Visual Studio の一部のバージョンに含まれるプロファイラーは、実行速度のプロファイリングに非常に優れています。
あなたの目的は何ですか?
特定のステートメントを見つけて、それらが合計実行時間にどのような影響を与えているかを大まかに把握して、それらを別の方法で実行する方法を見つけることが目的ですか?