From f7b67e4116d0ff01b77d71a85027e2d10f42bfc9 Mon Sep 17 00:00:00 2001 From: Dennis Eichhorn Date: Sat, 21 Sep 2024 05:30:16 +0200 Subject: [PATCH] fix logging bugs --- memory/DebugMemory.h | 17 +++++++++++++++-- utils/TestUtils.h | 1 + 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/memory/DebugMemory.h b/memory/DebugMemory.h index 196fb51..5fde562 100644 --- a/memory/DebugMemory.h +++ b/memory/DebugMemory.h @@ -14,13 +14,20 @@ #include "../stdlib/Types.h" +// required for __rdtsc +#if _WIN32 + #include +#else + #include +#endif + struct DebugMemoryRange { uint64 start; uint64 end; + uint64 time; }; struct DebugMemory { - uint64 size; uint64 usage; uint64 debug_range_size; @@ -43,7 +50,7 @@ void debug_memory_resize(DebugMemory* mem) DebugMemoryRange* old = mem->debug_ranges; mem->debug_range_size += 100; - mem->debug_ranges = (DebugMemoryRange *) malloc(mem->debug_range_size * sizeof(DebugMemoryRange)); + mem->debug_ranges = (DebugMemoryRange *) calloc(mem->debug_range_size, sizeof(DebugMemoryRange)); if (old) { memcpy(mem->debug_ranges, old, mem->debug_range_size - 100); @@ -60,13 +67,19 @@ void debug_memory_add_range(DebugMemory* mem, uint64 start, uint64 end) mem->debug_ranges[mem->debug_range_idx].start = start; mem->debug_ranges[mem->debug_range_idx].end = end; + // @question consider to use other time_ms() since __rdtsc is variable (boost, power saving) + mem->debug_ranges[mem->debug_range_idx].time = __rdtsc(); + ++mem->debug_range_idx; + mem->usage += end - start; } inline void debug_memory_reset(DebugMemory* mem) { + mem->size = 0; mem->usage = 0; + mem->debug_range_idx = 0; } diff --git a/utils/TestUtils.h b/utils/TestUtils.h index 83bd0cc..db61876 100644 --- a/utils/TestUtils.h +++ b/utils/TestUtils.h @@ -32,6 +32,7 @@ struct TimingStat { inline void update_timing_stat(TimingStat *stat) { + // @question consider to use other time_ms() since __rdtsc is variable (boost, power saving) uint64 new_tick_count = __rdtsc(); stat->delta_tick = new_tick_count - stat->old_tick_count;