What is the equivalent to System.nanoTime() in .NET?
Solution 1
I think that the Stopwatch class is what you are looking for.
Solution 2
If you want a timestamp to be compared between different processes, different languages (Java, C, C#), under GNU/Linux and Windows (Seven at least):
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;
}
Solution 3
the closest thing that i could find is the DateTime.ToFileTime() method. you can call this on an instance of a DateTime like so:
long starttime = DateTime.Now.ToFileTime()
The method returns a Windows File Time:
A Windows file time is a 64-bit value that represents the number of 100-nanosecond intervals that have elapsed since 12:00 midnight, January 1, 1601 A.D. (C.E.) Coordinated Universal Time (UTC).
you could at least time down to 100 ns intervals with it.
src: http://msdn.microsoft.com/en-us/library/system.datetime.tofiletime.aspx
Solution 4
DateTime.Now.Ticks
I was trying to find the answer to this to run some performance testing.
DateTime startTime = DateTime.Now;
generatorEntity.PopulateValueList();
TimeSpan elapsedTime = DateTime.Now - startTime;
Console.WriteLine("Completed! time(ticks) - " + elapsedTime.Ticks);

Lazlo
Updated on July 09, 2022Comments
-
Lazlo 11 months
The title is pretty much self-explanatory, I'm killing myself over this simplicity.
Looked here, but it isn't much helpful.