diff options
Diffstat (limited to 'src/timings.cpp')
| -rw-r--r-- | src/timings.cpp | 36 |
1 files changed, 18 insertions, 18 deletions
diff --git a/src/timings.cpp b/src/timings.cpp index 72abe7ea1..baa8b80da 100644 --- a/src/timings.cpp +++ b/src/timings.cpp @@ -13,13 +13,13 @@ struct Timings { #if defined(GB_SYSTEM_WINDOWS) -u64 win32_time_stamp_time_now(void) { +gb_internal u64 win32_time_stamp_time_now(void) { LARGE_INTEGER counter; QueryPerformanceCounter(&counter); return counter.QuadPart; } -u64 win32_time_stamp__freq(void) { +gb_internal u64 win32_time_stamp__freq(void) { gb_local_persist LARGE_INTEGER win32_perf_count_freq = {0}; if (!win32_perf_count_freq.QuadPart) { QueryPerformanceFrequency(&win32_perf_count_freq); @@ -33,11 +33,11 @@ u64 win32_time_stamp__freq(void) { #include <mach/mach_time.h> -u64 osx_time_stamp_time_now(void) { +gb_internal u64 osx_time_stamp_time_now(void) { return mach_absolute_time(); } -u64 osx_time_stamp__freq(void) { +gb_internal u64 osx_time_stamp__freq(void) { mach_timebase_info_data_t data; data.numer = 0; data.denom = 0; @@ -55,14 +55,14 @@ u64 osx_time_stamp__freq(void) { #include <time.h> -u64 unix_time_stamp_time_now(void) { +gb_internal u64 unix_time_stamp_time_now(void) { struct timespec ts; clock_gettime(CLOCK_MONOTONIC, &ts); return (ts.tv_sec * 1000000000) + ts.tv_nsec; } -u64 unix_time_stamp__freq(void) { +gb_internal u64 unix_time_stamp__freq(void) { gb_local_persist u64 freq = 0; if (freq == 0) { @@ -80,7 +80,7 @@ u64 unix_time_stamp__freq(void) { #error Implement system #endif -u64 time_stamp_time_now(void) { +gb_internal u64 time_stamp_time_now(void) { #if defined(GB_SYSTEM_WINDOWS) return win32_time_stamp_time_now(); #elif defined(GB_SYSTEM_OSX) @@ -92,7 +92,7 @@ u64 time_stamp_time_now(void) { #endif } -u64 time_stamp__freq(void) { +gb_internal u64 time_stamp__freq(void) { #if defined(GB_SYSTEM_WINDOWS) return win32_time_stamp__freq(); #elif defined(GB_SYSTEM_OSX) @@ -104,44 +104,44 @@ u64 time_stamp__freq(void) { #endif } -TimeStamp make_time_stamp(String const &label) { +gb_internal TimeStamp make_time_stamp(String const &label) { TimeStamp ts = {0}; ts.start = time_stamp_time_now(); ts.label = label; return ts; } -void timings_init(Timings *t, String const &label, isize buffer_size) { +gb_internal void timings_init(Timings *t, String const &label, isize buffer_size) { array_init(&t->sections, heap_allocator(), 0, buffer_size); t->total = make_time_stamp(label); t->freq = time_stamp__freq(); } -void timings_destroy(Timings *t) { +gb_internal void timings_destroy(Timings *t) { array_free(&t->sections); } -void timings__stop_current_section(Timings *t) { +gb_internal void timings__stop_current_section(Timings *t) { if (t->sections.count > 0) { t->sections[t->sections.count-1].finish = time_stamp_time_now(); } } -void timings_start_section(Timings *t, String const &label) { +gb_internal void timings_start_section(Timings *t, String const &label) { timings__stop_current_section(t); array_add(&t->sections, make_time_stamp(label)); } -f64 time_stamp_as_s(TimeStamp const &ts, u64 freq) { +gb_internal f64 time_stamp_as_s(TimeStamp const &ts, u64 freq) { GB_ASSERT_MSG(ts.finish >= ts.start, "time_stamp_as_ms - %.*s", LIT(ts.label)); return cast(f64)(ts.finish - ts.start) / cast(f64)freq; } -f64 time_stamp_as_ms(TimeStamp const &ts, u64 freq) { +gb_internal f64 time_stamp_as_ms(TimeStamp const &ts, u64 freq) { return 1000.0*time_stamp_as_s(ts, freq); } -f64 time_stamp_as_us(TimeStamp const &ts, u64 freq) { +gb_internal f64 time_stamp_as_us(TimeStamp const &ts, u64 freq) { return 1000000.0*time_stamp_as_s(ts, freq); } @@ -160,7 +160,7 @@ enum TimingUnit { char const *timing_unit_strings[TimingUnit_COUNT] = {"s", "ms", "us"}; -f64 time_stamp(TimeStamp const &ts, u64 freq, TimingUnit unit) { +gb_internal f64 time_stamp(TimeStamp const &ts, u64 freq, TimingUnit unit) { switch (unit) { case TimingUnit_Millisecond: return time_stamp_as_ms(ts, freq); case TimingUnit_Microsecond: return time_stamp_as_us(ts, freq); @@ -169,7 +169,7 @@ f64 time_stamp(TimeStamp const &ts, u64 freq, TimingUnit unit) { } } -void timings_print_all(Timings *t, TimingUnit unit = TimingUnit_Millisecond, bool timings_are_finalized = false) { +gb_internal void timings_print_all(Timings *t, TimingUnit unit = TimingUnit_Millisecond, bool timings_are_finalized = false) { isize const SPACES_LEN = 256; char SPACES[SPACES_LEN+1] = {0}; gb_memset(SPACES, ' ', SPACES_LEN); |