다음을 고려하여 코드 실행 시간을 계산하기 위해 CalcTiming 클래스를 사용자 정의합니다.
통계 실행 프로세스 중에는 가비지 수집이 없습니다. 즉, 코드 실행 시간을 계산하기 전에 GC가 가비지 수집을 완료하도록 합니다.
통계가 현재 프로세스의 코드 실행 시간인지 확인하세요.
다음과 같이 코드를 작성하세요.
public class CalcTiming { TimeSpan startTime; private TimeSpan endTime; TimeSpan duration; public CalcTiming() { startTime = new TimeSpan(0); duration = new TimeSpan(0); } public void StartTime() { //强制对所有代进行垃圾回收 GC.Collect(); //挂起线程,终结器线程清空该队列为止 GC.WaitForPendingFinalizers(); //用户运行代码的起始时间 startTime = Process.GetCurrentProcess().UserProcessorTime; } //统计的代码执行完毕的时间 public void StopTime() { endTime = Process.GetCurrentProcess().UserProcessorTime; duration = endTime.Subtract(startTime); } //返回统计的代码执行消耗的时间 public TimeSpan Result() { return duration; } }
위의 CalcTiming 클래스를 사용하여 배열의 시간 소비를 통계적으로 표시합니다.
class Program { static void Main(string[] args) { int[] nums = new int[100000]; BuildArray(nums); CalcTiming calcTime= new CalcTiming(); calcTime.StartTime(); DisplayNums(nums); calcTime.StopTime(); Console.WriteLine(string.Format("共用时间:{0} ms",calcTime.Result().TotalMilliseconds)); Console.Read(); } static void BuildArray(int[] arr) { for (int i = 0; i < 100000; i++) arr[i] = 1; } static void DisplayNums(int[] arr) { for (int i = 0; i <= arr.GetUpperBound(0); i++) Console.Write(arr[i] + " "); } }
요약, 다음으로 C#을 사용하여 모든 데이터 구조를 설명하고 CalcTiming 개체를 사용합니다.
위 내용은 C#으로 데이터 구조 설명하기 1: 통계 코드 실행 시간 개체에 대한 자세한 코드 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!