以下を考慮して、コード実行時間をカウントするクラス
CalcTiming
をカスタマイズします。
統計実行プロセス中にガベージ コレクションは許可されません。つまり、コードの実行時間をカウントする前に、GC にガベージ コレクションを完了させます。
-
統計が現在のプロセスのコードの実行時間であることを確認してください。
- 次のようにコードを記述します:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | 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
クラスを使用して、配列の消費時間を統計的に表示します:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | 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 中国語 Web サイトの他の関連記事を参照してください。