문제

Windows에서 .NET 프로그램 (C#)에서 성능 벤치 마크를 수행해야하지만 Windows World에서 벤치마킹을 많이하지 않았습니다. 이를 위해 사용자 지정 카운터와 함께 Windows 2000/XP Performance Monitor를 사용했지만 이것이 내가 원하는 것이라고 생각하지 않습니다.

Windows XP에 좋은 시스템 시설이 있거나 System.Diagnostics.StopWatch [편집] 및 수동 해석을 위해 텍스트 로그를 작성해야합니까, 아니면 다른 것이 있습니까?

편집 : 그 이상이 있습니까? System.Diagnostics.Stopwatch?

도움이 되었습니까?

해결책

Micro-Benchmarking의 경우 척도를 정말 좋아합니다 (다운로드 할 수 있습니다. http://msdn.microsoft.com/en-us/magazine/cc500596.aspx). Vance Morrison이 CLR의 성능 건축가 인 테스트 프로젝트입니다. 현재 많은 .NET/CLR 코어 메소드에 대한 벤치 마크 세트가 적습니다. 그것의 가장 중요한 부분은 테스트하고자하는 모든 것에 대한 새로운 벤치 마크를 조정하고 새로운 벤치 마크를 추가하는 것이 사소한 것입니다. 간단히 "척도 /편집"을 실행하면 프로젝트 자체와 함께 시작하여 해당 벤치 마크가 어떻게 작성되었는지 확인하고 원하는 경우 비슷한 방식으로 새로운 벤치 마크를 추가 할 수 있습니다.

이미 명시된 바와 같이 스톱워치는 아마도이 작업을 수행하는 가장 쉬운 방법 일 수 있으며 측정 값은 타이밍을 위해 스톱워치를 사용하지만 코드 블록을 실행 한 다음 달리기에 대한 통계를 제공하는 것과 같은 다른 작업을 수행합니다.

다른 팁

using System.Diagnostics;
....

Stopwatch sw = new Stopwatch();

sw.Start();

// Code you want to time...

// Note: for averaged accuracy (without other OS effects), 
//       run timed code multiple times in a loop 
//       and then divide by the number of runs.

sw.Stop();

Console.WriteLine("Took " + sw.ElapsedTicks + " Ticks");

빠른 숫자 만 원한다면 PowerShell을 사용하여 전체 실행 시간을 시간에 적용 할 수 있습니다. 측정 명령 cmdlet을 사용하십시오. 유닉스의 "시간"과 거의 같습니다.

> measure-command { your.exe arg1 }

Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 4
Milliseconds      : 996
Ticks             : 49963029
TotalDays         : 5.78275798611111E-05
TotalHours        : 0.00138786191666667
TotalMinutes      : 0.083271715
TotalSeconds      : 4.9963029
TotalMilliseconds : 4996.3029

거기에는 꽤 많은 프로파일 러가 있습니다. 다음은 내가 아는 것 중 일부입니다.

System.diagnostics.stopWatch를 사용하는 경우 계속해서 시작/정지를 명시 적으로 놓는 코드의 특정 지점 만 기기하고 측정 할 수 있습니다. 이것은 단단한 루프 나 그와 같은 것들과 같은 특정 조각을 측정하기에 충분하지만 프로그램이 대부분의 시간을 보내는 곳을 완벽하게 보여주지는 않을 것입니다.

이것은 당신이 원하는 것이 아니라 Dottrace 많은 유용한 진단을 제공하며 Visual Studio에 통합됩니다.

프로젝트가 상당히 크고 많은 수의 통화를하는 모듈이 많이 있다면 다음과 같습니다.http://www.moduleanalyzer.com/

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top