什么是相当于System.nanoTime()在.NET?(What is the equivale

2019-07-22 02:17发布

标题几乎是不言自明的,我杀死自己在这个简单。

看着这里 ,但它是没有太大的帮助。

Answer 1:

我认为, 秒表类是你在找什么。



Answer 2:

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

Java的:

java.lang.System.nanoTime();

ç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;
}

Ç视窗:

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;
}


Answer 3:

http://msdn.microsoft.com/de-de/library/system.datetime.ticks.aspx

somelike:DateTime.Ticks



Answer 4:

DateTime.Now会给你以毫秒为单位的当前时间,但时间精确到纳秒是相当不切实际的,至少在Windows中。



Answer 5:

我能找到最接近的是DateTime.ToFileTime()方法。 你可以像这样一个DateTime的实例调用这个:

long starttime = DateTime.Now.ToFileTime()

该方法返回一个Windows文件时间:

Windows文件的时间是64位值,表示自午夜12点,1月1日,公元1601(CE)协调世界时(UTC)已经过去的100纳秒为间隔的数量。

你可以在最少的时间下降到与它100周纳秒的时间间隔。

SRC: http://msdn.microsoft.com/en-us/library/system.datetime.tofiletime.aspx



Answer 6:

DateTime.Now.Ticks

我试图找到这个问题的答案运行一些性能测试。

DateTime startTime = DateTime.Now;
generatorEntity.PopulateValueList();
TimeSpan elapsedTime = DateTime.Now - startTime;
Console.WriteLine("Completed! time(ticks) - " + elapsedTime.Ticks);


Answer 7:

我想你会如果你在纳秒定时打到OS的硬性限制。 下面是关于这一主题的好文章:

http://www.lochan.org/2005/keith-cl/useful/win32time.html

虽然Windows将愉快地返回100纳秒的精度,时钟只能保证更新一次,每15.6毫秒左右。 因此,有效的Windows传回在这些更新发生到100纳秒的精度的时间。 对于比这更高的精度,你可能需要准备写C语言或汇编,并运行和嵌入式操作系统。



文章来源: What is the equivalent to System.nanoTime() in .NET?