DOBON.NETプログラミング道掲示板
(現在 過去ログ4 を表示中)

[ 最新記事及び返信フォームをトピックトップへ ]

■34560 / inTopicNo.1)  StopwatchクラスのElapsedMillisecondsの挙動
  
□投稿者/ あばば無人君 一般人(9回)-(2020/10/14(Wed) 14:30:27)
  • アイコン環境/言語:[Windows10(1909) 64bit、.Net Core 3.1、C#] 
    分類:[.NET] 

    いつもDOBON.NETの記事や掲示板を見て勉強させて貰っています。

    さて、掲題の件ですが、StopwatchクラスのElapsedMillisecondsは
    Stopwatch.Start()で計測を開始してからずっと放置していると
    どうなるのでしょうか?

    ElapsedMillisecondsはlong型で返るので9223372036854775807ミリ秒
    (約2億9千万年)まで計測可能かと思われるのですが、たとえば
    Stopwatch.Start()で計測を開始してから1年ほど経ったとすると
    経過時間の蓄積?によってアプリの動作が重くなるといったことが
    起きたりするのでしょうか?

    年レベルの放置結果を自分で確かめることはさすがに厳しいので
    どなたかご存知の方がいらっしゃいましたら教えて頂きたいです。

引用返信 削除キー/
■34561 / inTopicNo.2)  Re[1]: StopwatchクラスのElapsedMillisecondsの挙動
□投稿者/ Hongliang 大御所(589回)-(2020/10/14(Wed) 14:41:57)
  • アイコンソースを確認してみるといいかと。
    .NET Frameworkのソース
    https://referencesource.microsoft.com/#System/services/monitoring/system/diagnosticts/Stopwatch.cs,ceb0ba9cc88de82e
    .NET Coreのソース
    https://github.com/dotnet/runtime/blob/master/src/libraries/System.Private.CoreLib/src/System/Diagnostics/Stopwatch.cs

    結論をいうと、開始時のタイムスタンプと現在/終了時のタイムスタンプから計算してるだけなので重くなるとかそういうのはないです。
引用返信 削除キー/
■34562 / inTopicNo.3)  Re[2]: StopwatchクラスのElapsedMillisecondsの挙動
□投稿者/ あばば無人君 一般人(10回)-(2020/10/14(Wed) 15:19:27)
  • アイコンHongliangさん、ご返信ありがとうございます。

    > 結論をいうと、開始時のタイムスタンプと現在/終了時のタイムスタンプから計算してるだけなので重くなるとかそういうのはないです。

    ソースを見るとGetRawElapsedTicks()で「現時点−開始時点」していました。
    安心してStopwatchクラスを使用できそうです。

    非常に早い返信をして頂き本当に助かりました。
    これで本件は解決済みとさせて頂きます。
    本当にありがとうございました。

解決み!
引用返信 削除キー/



トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

Mode/  Pass/


- Child Tree -