回答:
私はJetBrains dotTraceとRedgate ANTSを幅広く使用しています。機能と価格はかなり似ています。どちらも、有用なパフォーマンスプロファイリングと非常に基本的なメモリプロファイリングを提供します。
dotTraceはResharperと統合されています。これは、IDEからワンクリックでユニットテストのパフォーマンスをプロファイルできるため、非常に便利です。ただし、dotTraceはしばしば誤った結果を与えるようです(たとえば、メソッドの実行に数年かかったなど)
ANTSがプロファイリング結果を表示する方法を好みます。ソースコードが表示され、各行の左側に、実行にかかった時間が表示されます。dotTraceにはツリービューがあります。
EQATECプロファイラーは非常に基本的であり、EQATECプロファイラーで実行できるアセンブリの特別なインストルメント済みバージョンをコンパイルする必要があります。ただし、無料です。
全体的には、パフォーマンスプロファイリングにはANTSを好みますが、Resharperを使用する場合、dotTraceの統合はキラー機能であり、使いやすさでANTSを上回っています。
無料のMicrosoft CLRプロファイラー(.Net Framework 2.0 / .Net Framework 4.0)は、.NETメモリプロファイリングに必要なすべてです。
2011年の更新:
Scitechメモリプロファイラを使用すると、COM相互運用を行っている場合は、それが役に立つかもしれませんが、私はCOMを作る任意のプロファイラを見つけるには至っていない-ドットトレースとANTSが欠けているアンマネージメモリ上でいくつかの情報を含む、非常に基本的なUIが、有用な情報の多くを、持っています診断が容易なメモリの問題-通常は解決する必要がありますwindbg.exe
。
ANTSプロファイラーは過去数年で飛躍的に進歩し、そのメモリープロファイラーには本当に便利な機能がいくつかあり、私の見積もりでは、これをdotTraceよりも先に進めています。私は幸運にも両方のライセンスを持っていますが、パフォーマンスとメモリの両方のために1つの.Netプロファイラーを購入する場合は、ANTSにしてください。
他の人はパフォーマンスプロファイリングを取り上げましたが、メモリプロファイリングに関しては、 現在Scitech .NET Memory Profiler 3.1とANTS Memory Profiler 5.1(2009年9月現在のバージョン)の両方を評価しています。1年か2年前にJetBrainsを試しましたが、ANTS(メモリプロファイリング用)ほど良くなかったので、今回は気にしませんでした。Webサイトを読むと、他の2つと同じメモリプロファイリング機能がないようです。
ANTSとScitechのメモリプロファイラーはどちらも他の機能にはない機能を備えているので、どちらを使用するかは好みによって異なります。一般的に言って、Scitechはより詳細な情報を提供しますが、ANTSは漏れているオブジェクトを特定するのに本当に素晴らしいです。全体的に、私はANTSを選択します。リークの可能性をすばやく特定できるからです。
ここに私の経験からのそれぞれの長所と短所があります:
ANTSとScitech .NETメモリプロファイラーの共通機能
アンツ
Scitech .NETメモリプロファイラー
要約すると、ANTSは何がより速くリークしているのかを見つけるのに役立ち、Scitechは全体のアプリケーションメモリパフォーマンスと個々のオブジェクトについて、何を見ればよいのか(たとえば、作成時のスタックトレース)がわかると詳細を提供します。スタックトレースと処分されていない使い捨てオブジェクトの追跡がANTSに追加された場合、他に何も使用する必要はありません。
EQATECプロファイラーhttp://www.eqatec.com/tools/profilerを最近発見しました。ほとんどの.NETバージョンで動作し、多数のプラットフォームで動作します。それは使いやすく、その一部は商用目的でも無料です。
[ 完全開示 ]
ここにリストされている他のいくつかの.NETメモリプロファイラーほど完全には機能していませんが、市場にはJustTraceという新しいエントリがあります。これはTelerikによって作成され、主な目標は、すべての種類のアプリ(web / Silverlight / desktop)でトレース/プロファイリングをより簡単かつ迅速に行えるようにすることです。
プロファイリングと最適化が他のツールに威圧的または遅いと感じたことがある場合、JustTraceは一見の価値があります。
nProf-完全に優れたフリーウェアプロファイラー-を忘れないでください。
私が発見したドットトレースプロファイラをすることによってJetBrainsの .NETのための優れたプロファイリングツールであることが、そのASP.NETモードが品質です。
ANTSプロファイラ。あまり使ったことはありませんが、ANTSに関しては特に不満はありません。視覚化は本当に役に立ちます。
タイミングにはAutomatedQA AQTime、メモリにはSciTech MemProfiler。
素早く簡単で無料なものを探しているなら、http://code.google.com/p/slimtune/がうまく機能しているようです。
私はJetBrains dotTrace for WinFormsとConsole Apps(ASP.netではまだテストされていません)を使用してきましたが、非常にうまく機能します。
彼らは最近、法人のライセンスよりも大幅に安い「個人ライセンス」も追加しました。それでも、他の誰かが安いまたは無料のものさえ知っているなら、私も聞きたいです:-)
素晴らしいscitech .netメモリプロファイラーをお忘れなく
.netアプリのメモリが不足している理由を追跡するのに最適です。
メモリとパフォーマンストレースセッションを比較するdotTraceの機能は非常に貴重です(ANTSにもメモリ比較機能があるかもしれませんが、パフォーマンスの比較はありませんでした)。
バグ修正または機能強化の前後にプロファイリングセッションを実行できるため、結果を比較することは非常に貴重です。特に、パフォーマンスが優先されることがなく、ボトルネックを見つけることができない場合は、(私の場合のように)巨大なレガシー。とても退屈です。before-after-diffを実行すると、各メソッドの呼び出し回数の変化と各メソッドの継続時間の変化を確認できます。
これは、コードの変更時だけでなく、たとえばクライアント/顧客ごとに異なるデータベースを使用するアプリケーションがある場合にも役立ちます。ある顧客が速度の低下について不平を言った場合、そのデータベースを使用してプロファイリングセッションを実行し、結果を「高速」データベースと比較して、速度低下の原因となっている操作を特定できます。もちろん、データベース側のパフォーマンスツールはたくさんありますが、アプリケーション側からパフォーマンスメトリックを確認するのに役立つ場合があります(ユーザーが実際に見ているものに近いため)。
結論:dotTraceは非常に機能し、差分は非常に貴重です。
以前は、Visual Studio Team Systemに付属のプロファイラーを使用していました。
SharpDevelopの現在のリリース(3.1.1)には、優れた統合プロファイラーがあります。これは非常に高速で、SharpDevelop IDEとそのNUnitランナーに非常によく統合されています。結果は柔軟なツリー/リストスタイルで表示されます(LINQを使用して独自の選択を作成します)。表示されたメソッドをダブルクリックすると、ソースコードに直接ジャンプします。
Visual Studio Team Systemに付属しているプロファイラーが最高のプロファイラーであるとは思えませんが、多くの場合それで十分であることがわかりました。具体的には、VSが提供するもの以外に何が必要ですか?
編集:残念ながら、それはVS Team Systemでのみ利用できますが、アクセスできる場合は、チェックする価値があります。
インテル®VTune™パフォーマンスアナライザー による迅速なサンプリング
私がいつか使用した素晴らしいツールをあなたの通知に持っていかなければなりません。AVICode Interceptor Studio。私の以前の会社では、この素晴らしいツールを使用してWebアプリケーションのプロファイルを作成しました(これは、世界で単一の最大のWebアプリケーションであり、これまでに行われた最大の民間ITプロジェクトであると想定されています)。パフォーマンスチームは、この素晴らしいツールの助けを借りて不思議に思いました。設定するのは面倒ですが、それは一度限りのアクティビティであり、時間の価値があると思います。チェックアウトこのページを詳細については。
ありがとう、ジェームズ
NuMega True Timeプロファイラーは、Micro FocusによるDevPartner Studioにあります。PDBのみを必要とし、ソースは不要な.NETアプリの行とメソッドレベルの詳細を提供します(ただし、役立ちます)。独自のスレッドごとのカーネルモードタイミングドライバーを使用して、アルゴリズム的に重いルーチンと長いI / O待機のルーチンを区別できます。バージョン10.5は、2011年2月4日に新しい64プロセスサポートとともに出荷されます。恥知らずなプラグイン:DevPartner製品ラインで作業しています。10.5リリースのニュースについては、http: //www.DevPartner.comでフォローアップしてください。
免責事項:私はMicro FocusのDevPartnerのプロダクトマネージャーです。
私の会社ではYourKit Profilerを.NETに選択しました。これが最良の値(価格と機能)だったからです。柔軟なライセンス(フローティングライセンス)を必要とする中小企業にとって、これは完璧な選択でした。当時、ANTSは開発者向けのシートロケットでした。
また、dotTraceでは不可能であった実行中のプロセスにアタッチする機能も提供しました。すべての.NETの速度が低下するため、このアタッチは最適なオプションではありませんが、他のプロセスによって開始された.NETアプリケーションをプロファイルする唯一の方法でした。機能的には、ANTSとdotTraceの方が優れていましたが、最終的にはYourKitで十分でした。