2012-03-08 14 views
4

最近、アプリケーションのプロファイリングを行うために、Visual Studio 2008 TSをインストールしました。今では、アプリケーションが「Hello World」よりも複雑なときに、私が実際のプロファイリングについて知っていることがわかりません。.netマルチスレッドアプリケーションのプロファイリング(Visual Studio 2008)

私の主な問題は、統合されたデバッガはすべてのスレッドが費やした時間を追加しているようですので、実行時間が数倍になり、スリープのような特定の機能も数回現れます。いくつかのスレッド。

私の問題は、これをより簡単に調べることができますか?私が関心を持っているスレッドは1つだけです(すべての作業を行う主要なスレッド)。他のスレッドは単に特定のものを待っていて、メインスレッドの実行時間によって完全に制限されます。 (それらは同じモジュールにありますが、同じ機能を呼び出すこともあります)

プロファイリングを設定する方法はありますか?私のシナリオにとって意味のあるものにするために結果を扱う方法はありますか? VS 2008以外のソリューション(2010または外部プロファイラなど)

私は現在、計測器を使用しています(私の見解ではサンプリングよりも良い結果を得ました)。

+1

2010年に2008年を選択した理由はありますか?後者には堅実なプロファイラが付属しています –

+1

JetBrainsは非常に優れたプロファイラも作成します。 http://www.jetbrains.com/profiler/ –

+0

あなたの目標は何ですか?それはプロファイラーを使用するか、スピードアップを得ることですか?スピードアップを望むなら、* [良い方法がある](http://stackoverflow.com/questions/2473666/tips-for-optimizing-c-net-programs/2474118#2474118)*。プロファイリングにはたくさんの神話があります。* [ここで説明しています](http://stackoverflow.com/questions/1777556/alternatives-to-gprof/1779343#1779343)*。 –

答えて

5

Red GateのANTS Performance Profilerは、スレッドによるプロファイリング結果をフィルタリングできます。

Working with the call treeのドキュメント(特に、「コールツリー表示オプションの変更」セクション)には、フィルタにアクセスできるスクリーンショットが表示されています。

+0

すべてのお返事ありがとうございます! 私は実際に重要なスレッドが起動しないようにするためにいくつかのコードを書き直しました。また、いくつかのロジックを別の機能に入れて、より速い概要を得るようにしました。 正常に動作しました。 ああ、私はビルドされたプロファイラ以外何もテストすることがなかった。 –

+0

リンクの期限が切れています。私はこれが新しいものだと思う:http://documentation.red-gate.com/display/APP8/Working+with+the+call+tree – ijb109

関連する問題