C# でのパフォーマンス テストの正確な時間測定
この記事では、C# を使用してパフォーマンス テストの正確な時間を測定する方法を学習します。 System.Diagnostics
名前空間には、Stopwatch
として知られる優れたクラスがあり、実行にかかる時間を簡単に測定できます。
ストップウォッチ
の概要を見てみましょう。
ストップウォッチ
の概要
Stopwatch
組み込みクラスは .Net
フレームワークで利用可能になり、さまざまな状況で使用できます。 コードの最適化、いくつかの潜在的なソリューションからの最適なオプションの選択、またはパフォーマンス スパイクの特定を支援します。
言い換えれば、ストップウォッチ
は、特定のプロセスまたはアクティビティが完了するまでにかかる時間を決定できる単純なデバイスです。 時間が重要な役割を果たす状況では、コードを最適化すると役立ちます。
これは高レベルの精度を備えており、より複雑な他の監視ツールが利用できないか、単純化のために必要ない場合に役立ちます。
C#
でのパフォーマンス テストの正確な時間測定のために Stopwatch
を実装する
Stopwatch
の基本的な実装を見てみましょう。 次の特性を使用して、経過した時間を判断できます。
.Elapsed
.ElapsedMilliseconds
.ElapsedTicks
以下のデモでは、プロセスの経過時間を出力する .Elapsed
関数を実装しました。
例
-
Stopwatch
ユーティリティを利用するには、次のライブラリをインポートします。using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Diagnostics;
-
Main()
メソッドで、s
という名前のStopwatch
オブジェクトを作成します。Stopwatch s = new Stopwatch();
-
プロセスの測定を開始します。
s.Start();
-
今すぐプロセス コードを記述します。 たとえば、文字列値を出力するために基本的な
for()
ループを使用しました。for (int i = 0; i < 5; i++) { Console.WriteLine("Myself M.Zeeshan, Let's Code!"); }
-
コードを記述したら、プロセスの測定を停止します。
s.Stop();
-
最後に、
.Elapsed
関数を使用して処理時間を確認します。Console.WriteLine("Time elapsed: {0}", s.Elapsed);
完全なソース コード:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;
namespace StopwatchbyZeeshan {
class Program {
static void Main(string[] args) {
Stopwatch s = new Stopwatch();
s.Start();
for (int i = 0; i < 5; i++) {
Console.WriteLine("Myself M.Zeeshan, Let's Code!");
}
s.Stop();
Console.WriteLine("Total Time elapsed: {0}", s.Elapsed);
}
}
}
出力:
Myself M.Zeeshan, Let's Code!
Myself M.Zeeshan, Let's Code!
Myself M.Zeeshan, Let's Code!
Myself M.Zeeshan, Let's Code!
Myself M.Zeeshan, Let's Code!
Total Time elapsed: 00:00:00.0144367
I have been working as a Flutter app developer for a year now. Firebase and SQLite have been crucial in the development of my android apps. I have experience with C#, Windows Form Based C#, C, Java, PHP on WampServer, and HTML/CSS on MYSQL, and I have authored articles on their theory and issue solving. I'm a senior in an undergraduate program for a bachelor's degree in Information Technology.
LinkedIn