スレッドに大きく依存するプログラムを作成しました。さらに、スレッドごとの合計時間と実行時間(カーネル時間+ユーザ時間)を測定する必要があります。スレッド実行タイミング
スレッド数は任意で、多数のスレッドを同時に実行できます。これはユーザーの操作に委ねられています。できるだけ早く実行する必要があるので、スレッド時間を測定するためにWMI/Performance Monitorのようなオーバーヘッドがあるものを使用するのは理想的ではありません。この記事のように瞬間
、私は、GetThreadTimesを使用しています:http://www.codeproject.com/KB/dotnet/ExecutionStopwatch.aspx
私の質問は単純です:私は、.NETスレッドがシステムスレッド(と一対一に対応しないことも理解してこれまでのすべてのテストでは、1対1であったようです)。その場合、.NETが2つ以上のスレッドを1つのシステムスレッドに入れることにした場合、私はタイミングコードから奇妙な結果を得るつもりですか?もしそうなら(あるいはそうでなくても)、.NETスレッドのカーネルとユーザー時間を測定する別の方法がありますか?
個人的に私は[SmartThreadPool](http://www.codeproject.com/KB/threads/smartthreadpool.aspx)のようなスレッドプールに行き、それらのパフォーマンスカウンターを使って物を測定します。 –
私はあなたの質問を理解するのが難しく、むしろあなたが実際に測定したいものとその理由を理解しています。単純なタイミングやANTSやJetbrainのような通常のCPUプロファイラでは、Stopwatchタイプ+ロギングの使用を検討しましたか? – Mahol25