Passen Sie eine Klasse CalcTiming zum Zählen der Codeausführungszeit an und berücksichtigen Sie dabei Folgendes:
Während des statistischen Ausführungsprozesses erfolgt keine Garbage Collection. Das heißt, lassen Sie den GC die Speicherbereinigung abschließen, bevor Sie die Codeausführungszeit zählen.
Stellen Sie sicher, dass die Statistiken die Ausführungszeit des Codes im aktuellen Prozess darstellen.
Schreiben Sie den Code wie folgt:
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; } }
Verwenden Sie die obige Klasse CalcTiming, um den Zeitverbrauch des Arrays statistisch anzuzeigen:
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] + " "); } }
Zusammenfassend lässt sich sagen, dass Sie beim Beschreiben aller Datenstrukturen in C# und beim Zählen der verbrauchten Zeit das Objekt CalcTiming verwenden.
Das obige ist der detaillierte Inhalt vonBeschreiben von Datenstrukturen mit C# 1: Detaillierte Codeerklärung von Objekten zur statistischen Codeausführungszeit. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!