Optimizations and profiling (fix draw line numbers, coroutines)
This commit is contained in:
@@ -193,6 +193,13 @@ API String GetExeDir(Allocator al) {
|
||||
return result;
|
||||
}
|
||||
|
||||
API uint64_t GetTimeNanos(void) {
|
||||
struct timespec spec;
|
||||
clock_gettime(CLOCK_MONOTONIC, &spec);
|
||||
uint64_t ts = ((uint64_t)spec.tv_sec * 1000000000ull) + (uint64_t)spec.tv_nsec;
|
||||
return ts;
|
||||
}
|
||||
|
||||
API double GetTimeMicros(void) {
|
||||
struct timespec spec;
|
||||
clock_gettime(CLOCK_MONOTONIC, &spec);
|
||||
@@ -565,6 +572,19 @@ API FileIter IterateFiles(Allocator alo, String path) {
|
||||
return it;
|
||||
}
|
||||
|
||||
API uint64_t GetTimeNanos(void) {
|
||||
static double invfreq;
|
||||
if (!invfreq) {
|
||||
LARGE_INTEGER frequency;
|
||||
QueryPerformanceFrequency(&frequency);
|
||||
invfreq = 1000000000.0 / frequency.QuadPart;
|
||||
}
|
||||
LARGE_INTEGER counter;
|
||||
QueryPerformanceCounter(&counter);
|
||||
uint64_t ts = (uint64_t)((double)counter.QuadPart * invfreq);
|
||||
return ts;
|
||||
}
|
||||
|
||||
API double GetTimeMicros(void) {
|
||||
static double invfreq;
|
||||
if (!invfreq) {
|
||||
@@ -1047,6 +1067,13 @@ API String GetExeDir(Allocator al) {
|
||||
return result;
|
||||
}
|
||||
|
||||
API uint64_t GetTimeNanos(void) {
|
||||
struct timespec spec;
|
||||
clock_gettime(CLOCK_MONOTONIC, &spec);
|
||||
uint64_t ts = ((uint64_t)spec.tv_sec * 1000000000ull) + (uint64_t)spec.tv_nsec;
|
||||
return ts;
|
||||
}
|
||||
|
||||
API double GetTimeMicros(void) {
|
||||
struct timespec spec;
|
||||
clock_gettime(CLOCK_MONOTONIC, &spec);
|
||||
|
||||
Reference in New Issue
Block a user