什么是.NET中的System.nanoTime()?

Laz*_*zlo 18 .net c# java nanotime

这个标题几乎是不言自明的,我正在为这种简单而自杀.

看着这里,但没什么用处.

Guf*_*ffa 26

我认为秒表课程就是你要找的.

  • @overstood:是的,精确度不会下降到纳秒,就像nanoTime方法一样.:) (3认同)
  • 秒表绝对是在BCL中计时的最佳方式,它只是不准确到纳秒. (2认同)

Aub*_*bin 9

如果你想在不同的进程,不同的语言(Java,C,C#)之间比较时间戳,在GNU/Linux和Windows下(至少七个):

Java的:

java.lang.System.nanoTime();
Run Code Online (Sandbox Code Playgroud)

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;
}
Run Code Online (Sandbox Code Playgroud)

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;
}
Run Code Online (Sandbox Code Playgroud)

C#:

private static long nanoTime() {
   long nano = 10000L * Stopwatch.GetTimestamp();
   nano /= TimeSpan.TicksPerMillisecond;
   nano *= 100L;
   return nano;
}
Run Code Online (Sandbox Code Playgroud)