什么相当于.NET中的System.nanoTime()?
标题几乎是不言自明的,我正在为这种简单性而自杀。
看了这里,但它并没有多大帮助。
标题几乎是不言自明的,我正在为这种简单性而自杀。
看了这里,但它并没有多大帮助。
如果你想在GNU/Linux和Windows(至少七个)下,在不同的进程、不同的语言(Java、C、C#)之间比较一个时间戳:
爪哇岛:
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 视窗:
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;
}