答えて
Stopwatchクラスはあなたが探しているクラスだと思います。
DateTime.Now
は現在の時間をミリ秒単位で表しますが、ナノ秒単位の正確な時間は、少なくともWindowsでは実用的ではありません。
私はDateTime.Nowの精度は〜15または20ミリ秒だと思います。それは精度よりも精度が高い。 – snarf
最も近いものは、DateTime.ToFileTime()メソッドです。あなたはそうのようなのDateTimeのインスタンスでこれを呼び出すことができます。
long starttime = DateTime.Now.ToFileTime()
方法は、Windowsのファイル時刻を返します。
A Windowsファイル時刻は、100の数を表す64ビットの値であり、 1601年1月1日午前12時00分(CE)の世界協定世界時(UTC)から経過した時間。
少なくとも100ns間隔でこれを実行できます。
SRC:http://msdn.microsoft.com/en-us/library/system.datetime.tofiletime.aspx
これは、最後のウィンドウのタイマー更新の時間に対して100 nsの精度しか与えません。これは15〜16 msごとに発生します。 – overstood
ok、その情報は好奇心から出てきますか? –
私はあなたがナノ秒単位でタイミングしている場合、OSのハード限界にヒットするつもりだと思います。ここで話題に良い記事です:
http://www.lochan.org/2005/keith-cl/useful/win32time.html
Windowsが喜んで100ナノ秒の精度を返しますが、クロックは一度だけ、すべての15.6ミリ秒かそこらを更新することが保証されています。 Windowsは効果的に、これらの更新が100ナノ秒の精度で発生した時刻を返します。これ以上の精度を得るためには、おそらくCやアセンブラを記述し、組み込みOSを実行する準備が必要です。
http://msdn.microsoft.com/de-de/library/system.datetime.ticks.aspx
somelike:DateTime.Ticks
DateTime.Now.Ticks
私はいくつかのパフォーマンステストを実行するには、この答えを見つけようとしました。
DateTime startTime = DateTime.Now;
generatorEntity.PopulateValueList();
TimeSpan elapsedTime = DateTime.Now - startTime;
Console.WriteLine("Completed! time(ticks) - " + elapsedTime.Ticks);
あなたはタイムスタンプが異なるプロセス、異なる言語(Javaの、C、C#の)間で比較する場合は、GNU/LinuxとWindowsの下で(七少なくとも):
のJava:
java.lang.System.nanoTime();
C GNU/Linuxの場合:
static int64_t hpms_nano() {
struct timespec t;
clock_gettime(CLOCK_MONOTONIC, &t);
int64_t nano = t.tv_sec;
nano *= 1000;
nano *= 1000;
nano *= 1000;
nano += t.tv_nsec;
return nano;
}
CのWindows:
static int64_t hpms_nano() {
static LARGE_INTEGER ticksPerSecond;
if(ticksPerSecond.QuadPart == 0) {
QueryPerformanceFrequency(&ticksPerSecond);
}
LARGE_INTEGER ticks;
QueryPerformanceCounter(&ticks);
uint64_t nano = (1000*1000*10UL * ticks.QuadPart)/ticksPerSecond.QuadPart;
nano *= 100UL;
return nano;
}
C番号:
private static long nanoTime() {
long nano = 10000L * Stopwatch.GetTimestamp();
nano /= TimeSpan.TicksPerMillisecond;
nano *= 100L;
return nano;
}
- 1. JavaのSystem.nanoTime()のiOSに相当するものは何ですか?
- 2. .NETのPHP InfiniteIteratorに相当するものは何ですか?
- 3. .net coreのcontext.environment.addに相当するものは何ですか?
- 4. .NETの "ByteBuffer.flip"& "ByteBuffer.slice"に相当するものは何ですか?
- 5. javaのSystem.nanoTime()に相当する
- 6. .NET CoreのAssembly.GetEntryAssembly()に相当するものは何ですか? .NET Frameworkの
- 7. .NET Standard/.NET CoreのType.GetGenericArguments()に相当するものは何ですか?
- 8. dot netのpythonの "urllib2"に相当するものは何ですか?
- 9. .netのcurrentProcess.MainModuleに相当するC++は何ですか?
- 10. JavaのNumberFormatExceptionに相当する.NETは何ですか?
- 11. JavaのStringBufferに相当する.NETは何ですか?
- 12. Elasticsearchの(mongodbの)$に相当するものは何ですか?
- 13. Javascriptの.sampleに相当するものは何ですか?
- 14. phpMyAdminのアスタリスク(*)に相当するものは何ですか?
- 15. Visual C++のMy.Resourcesに相当するものは何ですか?
- 16. Debugger.Launch()のJavaに相当するものは何ですか?
- 17. NOT INのHQLに相当するものは何ですか?
- 18. @Postconstructのejb-jar.xmlに相当するものは何ですか?
- 19. dojo.create()のjQueryに相当するものは何ですか?
- 20. Go deferのルビに相当するものは何ですか?
- 21. ARRAYFORMULAのINDEXに相当するものは何ですか?
- 22. Python os.pathsepのRustに相当するものは何ですか?
- 23. Regexp :: AssembleのJavaに相当するものは何ですか?
- 24. phpのtop.locationに相当するものは何ですか?
- 25. PHPのpreg_quoteに相当するものは何ですか?
- 26. Rubyのsubstrに相当するものは何ですか?
- 27. Rubyの "pythonic"に相当するものは何ですか?
- 28. iOSのC#ドロップダウンコンボボックスに相当するものは何ですか?
- 29. WinRTのSecureStringに相当するものは何ですか?
- 30. pythonのgetattrに相当するものは何ですか
+1、タイミングについて(対絶対時間を得る)、ストップウォッチはそれです。 – orip
ストップウォッチは間違いなくBCLの時間を計測する最良の方法ですが、ナノ秒には正確ではありません。 – overstood
@overstood:確かに、nanoTimeメソッドと同じように、精度はナノ秒まで低下しません。 :) – Guffa