|
|
| 1行目: |
1行目: |
| .NETのTimeSpan型でマイクロ秒やナノ秒を取得する。 | | .NETのTimeSpan型でマイクロ秒やナノ秒を取得する。 |
| TimeSpanのTotalMillisecondsプロパティはdouble型であり小数点以下にミリ秒より小さい数字がいる。 | | TimeSpanのTotalMillisecondsプロパティはdouble型であり小数点以下にミリ秒より小さい数字がいる。 |
| 最小単位は100ナノ秒。これは「1tick = 100ナノ秒」という.NETの仕様による<ref>https://docs.microsoft.com/en-us/dotnet/api/system.datetime.ticks?redirectedfrom=MSDN&view=netframework-4.7.2</ref>。
| |
|
| |
|
| <syntaxhighlight lang="csharp"> | | 最小単位は100ナノ秒。これは「1tick = 100ナノ秒」という.NETの仕様による<ref>https://docs.microsoft.com/en-us/dotnet/api/system.datetime.ticks?redirectedfrom=MSDN&view=netframework-4.7.2</ref>。つまり1tickを10倍して1マイクロ秒としても良さそうに感じる。しかし「マイクロソフト純正は1tick = 100ナノ秒に限る」というものであり、[[Mono]]などの互換環境では不確定なのでTotalMillisecondsから計算するほうが望ましい。ということらしい。 |
| public static void Main(string[] args)
| |
| {
| |
| var stopwatch = new Stopwatch();
| |
| stopwatch.Start();
| |
| System.Threading.Thread.Sleep(1000);
| |
| stopwatch.Stop();
| |
| | |
| // TimeSpanのTotalMillisecondsプロパティはdouble型であり
| |
| // 小数点以下にミリ秒より小さい数字がいる。
| |
| TimeSpan timeSpan = stopwatch.Elapsed;
| |
| Console.WriteLine( "秒 (s ): {0}", timeSpan.TotalSeconds);
| |
| Console.WriteLine(" ミリ秒 (ms): {0}", timeSpan.TotalMilliseconds);
| |
| Console.WriteLine("マイクロ秒 (us): {0}", timeSpan.TotalMilliseconds * 1000);
| |
| Console.WriteLine(" ナノ秒 (ns): {0}", timeSpan.TotalMilliseconds * 1000 * 1000);
| |
| }
| |
| </syntaxhighlight> | |
|
| |
|
| == 参考文献 == | | == 参考文献 == |
| 25行目: |
8行目: |
|
| |
|
| [[category: .NET]] | | [[category: .NET]] |
| | <references /> |
2018年8月27日 (月) 01:29時点における版
.NETのTimeSpan型でマイクロ秒やナノ秒を取得する。
TimeSpanのTotalMillisecondsプロパティはdouble型であり小数点以下にミリ秒より小さい数字がいる。
最小単位は100ナノ秒。これは「1tick = 100ナノ秒」という.NETの仕様による[1]。つまり1tickを10倍して1マイクロ秒としても良さそうに感じる。しかし「マイクロソフト純正は1tick = 100ナノ秒に限る」というものであり、Monoなどの互換環境では不確定なのでTotalMillisecondsから計算するほうが望ましい。ということらしい。
参考文献