스레드에 크게 의존하는 프로그램을 작성했습니다. 또한 각 스레드가 수행하는 총 시간과 실행 시간 (커널 시간에 사용자 시간을 더한 시간)을 측정해야한다는 요구 사항이 있습니다.스레드 실행 타이밍
임의의 수의 스레드가있을 수 있으며 한 번에 많은 스레드가 실행될 수 있습니다. 이것은 사용자 활동에 달려 있습니다. 가능한 한 빨리 실행해야하므로 스레드 시간을 측정하기 위해 WMI/Performance Monitor와 같은 오버 헤드가있는 것을 사용하는 것이 이상적이지 않습니다. http://www.codeproject.com/KB/dotnet/ExecutionStopwatch.aspx
내 질문은 간단하다 :이 문서에서와 같이 순간
, 내가 GetThreadTimes을 사용하고 난 (.NET 스레드 시스템 스레드와 일대일로 일치하지 않을 수 있습니다 이해 지금까지의 모든 테스트에서 일대일로 진행된 것 같습니다.) 그렇다면 .NET에서 두 개 이상의 스레드를 하나의 시스템 스레드에 넣기로 결정하면 내 타이밍 코드에서 이상한 결과가 나타날 수 있습니까? 그렇다면 (또는 그렇지 않더라도) .NET 스레드의 커널 및 사용자 시간을 측정 할 수있는 또 다른 방법이 있습니까?
개인적으로 [SmartThreadPool] (http://www.codeproject.com/KB/threads/smartthreadpool.aspx)과 같은 스레드 풀을 찾아 성능 측정에 사용합니다. –
나는 당신의 질문을 이해하기가 힘들뿐만 아니라 당신이 실제로 측정하고자하는 것과 그 이유를 알고 있습니다. 간단한 타이밍이나 ANTS 또는 Jetbrain과 같은 일반 CPU 프로파일 러에 대해 스톱워치 유형 + 로깅을 고려해 보셨습니까? – Mahol25