나는 기능의 성능을 측정하는 좋은 question 발견하고 답변 멀티 프로세서 시스템의 스톱워치에 대한 모범 사례?
Stopwatch sw = new Stopwatch();
sw.Start();
//DoWork
sw.Stop();
//take sw.Elapsed
다음하지만 멀티 프로세서 시스템에서 실행하는 경우이 유효로 스톱워치를 사용하는 것이 좋습니다? 스레드를 다른 프로세서로 전환 할 수 있습니까? 같은 일도 Enviroment.TickCount에 있어야합니다. 답은 다음과 같이 I가 BeginThreadAffinity 내부 내 코드를 래핑한다 예이면
Thread.BeginThreadAffinity();
Stopwatch sw = new Stopwatch();
sw.Start();
//DoWork
sw.Stop();
//take sw.Elapsed
Thread.EndThreadAffinity();
PS
함수 다른 실행되면 스위칭 스레드 레벨 위에 예를 들어 상기 프로세서 레벨뿐만 아니라 발생 스레드가 시스템을 다른 프로세서로 전환 할 수 있도록하려면 스톱워치가이 전환 후에 유효할까요? 함수 자체가 멀티 스레드되지 않은 경우
난 단지뿐만 아니라에 Thread.sleep를 사용하여 타이머 기능을 시뮬레이션 할 수 perfromance 측정을 위해 스톱워치를 사용하고 있지 않다
함수가 백그라운드 스레드에서 실행중인 경우 함수 스레드가 측정에서 오류로 연결되는 다른 프로세서로 전환 할 수 있음을 의미합니다. –
MSDN에 따르면 "백그라운드 스레드는 전경 스레드와 동일하지만 백그라운드 스레드는 그렇지 않습니다 프로세스가 종료되는 것을 방지합니다. " Ref : http : // msdn.microsoft.com/en-us/library/system.threading.thread.isbackground.aspx –
@Tormod Fjeldskår, 전경/배경 스레드를 다른 프로세서로 전환 할 수 있으므로 해당 형식에 신경 쓰지 않지만 내 의견에 언급했습니다. 예를 들면 더 이상 –