Thread overview | |||||
---|---|---|---|---|---|
|
February 13, 2016 nanosecond time | ||||
---|---|---|---|---|
| ||||
I am stumped on need finding interval between two events in a program execution in nanoseconds. Any sample code will be appreciated (along with imports needed to make it work): - time in nanoseconds-now - do-some processing - time in nano-second-now Thanks |
February 13, 2016 Re: nanosecond time | ||||
---|---|---|---|---|
| ||||
Posted in reply to ishwar | On Saturday, 13 February 2016 at 19:24:44 UTC, ishwar wrote: > I am stumped on need finding interval between two events in a program execution in nanoseconds. Any sample code will be appreciated (along with imports needed to make it work): > - time in nanoseconds-now > - do-some processing > - time in nano-second-now > > Thanks use a StopWatch: http://dlang.org/phobos/std_datetime.html#.StopWatch |
February 15, 2016 Re: nanosecond time | ||||
---|---|---|---|---|
| ||||
Posted in reply to ishwar | On Saturday, 13 February 2016 at 19:24:44 UTC, ishwar wrote: > I am stumped on need finding interval between two events in a program execution in nanoseconds. Any sample code will be appreciated (along with imports needed to make it work): > - time in nanoseconds-now > - do-some processing > - time in nano-second-now > > Thanks As suggested above, use a StopWatch. I use this (not-very-cross-platform) function for latency measurement purposes. It is precise on Linux. For Mac OS and Windows, it's returns an approximation: version(linux) import core.sys.linux.time; version(OSX) import core.time; version(Windows) import core.sys.windows.windows; static if(is(typeof(clockid_t))) { extern(C) nothrow int clock_gettime(clockid_t, timespec*); } public ulong getLocalTimestampNS() nothrow @nogc { static if(is(typeof(clock_gettime))) { timespec ts; clock_gettime(CLOCK_MONOTONIC_RAW, &ts); return ts.tv_sec * 1000000000 + ts.tv_nsec; } static if(is(typeof(mach_absolute_time))) { // IMPORTANT NOTE: mach_absolute_time does not always return nanoseconds. // Sometimes it returns other values. We are using it here as an approximation. return mach_absolute_time(); } version (Windows) { // Just an approximation long cnt; if (QueryPerformanceCounter(&cnt)) { return cnt * 500; } return 0; } } |
Copyright © 1999-2021 by the D Language Foundation