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