ここで説明したようにインストルメンテーションモデルを使用すると、.Netアプリケーションのパフォーマンスがプロファイルツールによって実行可能コードが変更され、パフォーマンス測定コードが挿入されます。だから私のオリジナルの実行可能コードは変更されていますか?インストルメンテーションモデルを使用したパフォーマンスチューニング
http://msdn.microsoft.com/en-us/library/ms242753(VS.80).aspx
に関して、 ジョージ
ここで説明したようにインストルメンテーションモデルを使用すると、.Netアプリケーションのパフォーマンスがプロファイルツールによって実行可能コードが変更され、パフォーマンス測定コードが挿入されます。だから私のオリジナルの実行可能コードは変更されていますか?インストルメンテーションモデルを使用したパフォーマンスチューニング
http://msdn.microsoft.com/en-us/library/ms242753(VS.80).aspx
に関して、 ジョージ
はい。計装されたコードは、計装されていないコードとは異なります。これは、の結果が慎重にになる必要があることを意味します。しかし、ほとんどのプロファイラーは、重要なビットに焦点を当てるという合理的な仕事をしています。私はサンプリングオプションには決して幸運を祈ることはありませんでした。しかし、計装はしばしば役に立ちました。個人的には、私はjetBrainsが好きです。あなたのコード内のホットエリアを知るためにどのようなとき
サンプリングモードがあり、それはそれだけで、すべての実行中のスレッドの現在のコールスタックをサンプリングしますあなたのコードを変更することはありません。あなたのスレッドが内容的に眠っているか、リソース(mutex、イベントなど)を待っている場合、スレッドはホットな領域としてカウントされます。このモードを使用して負荷を測定したいとします。
インスツルメンテーションモード(トレース)は、各メソッドで費やされた時間(サイクル)を測定します。
(デバッグシンボルを使用して)コードをインスツルメントする必要がありますが、最終的にシステムにかかるオーバーヘッドは除外されます。このモードを使用して、単一のプロセスを測定したいとします。
はい、インストゥルメントするとき、プロファイラは、必要なパフォーマンスデータを収集して追跡するための追加の指示を使用してコードを修正します。計装されたバージョンのアセンブリを配布することは決して望ましくなく、デバッグの目的で計装されたアセンブリを使用することは望ましくありません(臨界セクション/競合条件などは、
これは、計測は、プロファイリングの対象となるゴールにとって非常に価値があると言われています。実際のデータを収集し、高価なオペレーションを分離することで、最適化作業を適切に集中させることができ、時間を無駄にすることなく、メンテナンスを減らすことができます。
Cool、Marc!さらに2つのコメント 1.インストルメンテーションモードが実際に元のコードや実行ファイルを実際に変更することをあなたに確認してください。 2.私はjetBrainsがVSTSの組み込みプロファイラと比較して、無料で利点がないことを発見しましたか? – George2
サンプリングモデルで、スレッドが待機状態である時間を含める方法はありますか?私が正しく覚えていれば、サンプリングモデルは待機スレッドで時間を計算しませんか?だから私のアプリケーションのパフォーマンスのボトルネックがあるスレッドでは常に待っている、私はサンプリングモデルから決して知ることができない? – George2