[解決済み] DateTime.Nowは関数のパフォーマンスを測定するのに最適な方法ですか?[クローズド]
2022-03-20 19:29:30
質問
ボトルネックを見つけたいので、できるだけ正確に時間を計測してほしい。
次のコードスニペットは、パフォーマンスを測定するのに最適な方法ですか?
DateTime startTime = DateTime.Now;
// Some execution process
DateTime endTime = DateTime.Now;
TimeSpan totalTimeTaken = endTime.Subtract(startTime);
解決方法は?
いいえ、そんなことはありません。を使用します。
ストップウォッチ
は
System.Diagnostics
)
Stopwatch sw = Stopwatch.StartNew();
PerformWork();
sw.Stop();
Console.WriteLine("Time taken: {0}ms", sw.Elapsed.TotalMilliseconds);
ストップウォッチは、高精度なタイマーの存在を自動的にチェックします。
特筆すべきは
DateTime.Now
よりもかなり遅くなることが多い。
DateTime.UtcNow
タイムゾーンを扱う必要があるためです。
サマータイム
といった具合です。
DateTime.UtcNowは通常15msの分解能を持っています。参照
John Chapmanのブログ記事
について
DateTime.Now
の精度は、素晴らしい要約です。
面白いトリビア:ストップウォッチがフォールバックするのは
DateTime.UtcNow
ハードウェアが高周波カウンターをサポートしていない場合。Stopwatchが高精度を実現するためにハードウェアを使用しているかどうかは、静的フィールドを見ることで確認することができます
ストップウォッチ.IsHighResolution
.
関連
-
[解決済み】ファイルへの読み書きの際に共有違反のIOExceptionが発生する C#
-
[解決済み] SQLiteのINSERT/per-secondのパフォーマンスを向上させる
-
[解決済み] Python 3で「1000000000000000 in range(1000000000000001)」はなぜ速いのですか?
-
[解決済み] C#のオートプロパティに初期値を与える最良の方法は何ですか?
-
[解決済み] C#がforeachで変数を再利用するのは理由があるのか?
-
[解決済み] なぜList<T>を継承しないのですか?
-
[解決済み] リフレクションを使ってジェネリックメソッドを呼び出すにはどうしたらいいですか?
-
[解決済み] メソッドの実行時間を計算する
-
[解決済み] Intel CPU の _mm_popcnt_u64 で、32 ビットのループカウンターを 64 ビットに置き換えると、パフォーマンスが著しく低下します。
-
[解決済み】SQL Serverでdatetimeの時間部分を削除する最良の方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Ajax処理で「無効なJSONプリミティブ」と表示される件
-
[解決済み】C#におけるtypedefの等価性
-
[解決済み】C#はJavaのcharAt()と同等?)
-
[解決済み】C# ASP.NET使用時に「WebClientのリクエスト中に例外が発生しました。
-
[解決済み】Entity FrameworkからのSqlException - セッション内で他のスレッドが動作しているため、新しいトランザクションは許可されません。
-
[解決済み】Visual Studio: 操作を完了できませんでした。パラメータが正しくありません
-
[解決済み】OnCollisionEnter2Dが実行されない?
-
[解決済み】aspNetCore 2.2.0 - AspNetCoreModuleV2 エラー
-
[解決済み】パラメータ付きRedirectToAction
-
[解決済み】画像のペイントにTextureBrushを使用する方法