diff options
| author | Ginger Bill <bill@gingerbill.org> | 2016-11-23 12:29:50 +0000 |
|---|---|---|
| committer | Ginger Bill <bill@gingerbill.org> | 2016-11-23 12:29:50 +0000 |
| commit | 4d30ef7eda0021f0cb827c7a218ef3afc6ce8b55 (patch) | |
| tree | 9f31e2b07cf610300c1db3c511b84d9d2cc72d6b /src/timings.cpp | |
| parent | a77c6b3e55c5857c9c0ba36baae2dbdcd7564cd4 (diff) | |
Change extensions .cpp to .c
Diffstat (limited to 'src/timings.cpp')
| -rw-r--r-- | src/timings.cpp | 105 |
1 files changed, 0 insertions, 105 deletions
diff --git a/src/timings.cpp b/src/timings.cpp deleted file mode 100644 index a1eecc01a..000000000 --- a/src/timings.cpp +++ /dev/null @@ -1,105 +0,0 @@ -typedef struct TimeStamp { - u64 start; - u64 finish; - String label; -} TimeStamp; - -typedef struct Timings { - TimeStamp total; - Array(TimeStamp) sections; - u64 freq; -} Timings; - - -u64 win32_time_stamp_time_now(void) { - LARGE_INTEGER counter; - QueryPerformanceCounter(&counter); - return counter.QuadPart; -} - -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); - GB_ASSERT(win32_perf_count_freq.QuadPart != 0); - } - - return win32_perf_count_freq.QuadPart; -} - -u64 time_stamp_time_now(void) { -#if defined(GB_SYSTEM_WINDOWS) - return win32_time_stamp_time_now(); -#else -#error time_stamp_time_now -#endif -} - -u64 time_stamp__freq(void) { -#if defined(GB_SYSTEM_WINDOWS) - return win32_time_stamp__freq(); -#else -#error time_stamp__freq -#endif -} - -TimeStamp make_time_stamp(String label) { - TimeStamp ts = {0}; - ts.start = time_stamp_time_now(); - ts.label = label; - return ts; -} - -void timings_init(Timings *t, String label, isize buffer_size) { - array_init_reserve(&t->sections, heap_allocator(), buffer_size); - t->total = make_time_stamp(label); - t->freq = time_stamp__freq(); -} - -void timings_destroy(Timings *t) { - array_free(&t->sections); -} - -void timings__stop_current_section(Timings *t) { - if (t->sections.count > 0) { - t->sections.e[t->sections.count-1].finish = time_stamp_time_now(); - } -} - -void timings_start_section(Timings *t, String label) { - timings__stop_current_section(t); - array_add(&t->sections, make_time_stamp(label)); -} - -f64 time_stamp_as_ms(TimeStamp ts, u64 freq) { - GB_ASSERT_MSG(ts.finish >= ts.start, "time_stamp_as_ms - %.*s", LIT(ts.label)); - return 1000.0 * cast(f64)(ts.finish - ts.start) / cast(f64)freq; -} - -void timings_print_all(Timings *t) { - timings__stop_current_section(t); - t->total.finish = time_stamp_time_now(); - - char const SPACES[] = " "; - - isize max_len = t->total.label.len; - for_array(i, t->sections) { - TimeStamp ts = t->sections.e[i]; - max_len = gb_max(max_len, ts.label.len); - } - - GB_ASSERT(max_len <= gb_size_of(SPACES)-1); - - gb_printf("%.*s%.*s - %.3f ms\n", - LIT(t->total.label), - cast(int)(max_len-t->total.label.len), SPACES, - time_stamp_as_ms(t->total, t->freq)); - - for_array(i, t->sections) { - TimeStamp ts = t->sections.e[i]; - gb_printf("%.*s%.*s - %.3f ms\n", - LIT(ts.label), - cast(int)(max_len-ts.label.len), SPACES, - time_stamp_as_ms(ts, t->freq)); - } -} |