mirror of
https://github.com/Karaka-Management/cOMS.git
synced 2026-02-13 17:08:40 +00:00
fix logging bugs
This commit is contained in:
parent
9374b5aa2c
commit
f7b67e4116
|
|
@ -14,13 +14,20 @@
|
||||||
|
|
||||||
#include "../stdlib/Types.h"
|
#include "../stdlib/Types.h"
|
||||||
|
|
||||||
|
// required for __rdtsc
|
||||||
|
#if _WIN32
|
||||||
|
#include <intrin.h>
|
||||||
|
#else
|
||||||
|
#include <x86intrin.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
struct DebugMemoryRange {
|
struct DebugMemoryRange {
|
||||||
uint64 start;
|
uint64 start;
|
||||||
uint64 end;
|
uint64 end;
|
||||||
|
uint64 time;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct DebugMemory {
|
struct DebugMemory {
|
||||||
uint64 size;
|
|
||||||
uint64 usage;
|
uint64 usage;
|
||||||
|
|
||||||
uint64 debug_range_size;
|
uint64 debug_range_size;
|
||||||
|
|
@ -43,7 +50,7 @@ void debug_memory_resize(DebugMemory* mem)
|
||||||
DebugMemoryRange* old = mem->debug_ranges;
|
DebugMemoryRange* old = mem->debug_ranges;
|
||||||
|
|
||||||
mem->debug_range_size += 100;
|
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) {
|
if (old) {
|
||||||
memcpy(mem->debug_ranges, old, mem->debug_range_size - 100);
|
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].start = start;
|
||||||
mem->debug_ranges[mem->debug_range_idx].end = end;
|
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->debug_range_idx;
|
||||||
|
mem->usage += end - start;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline
|
inline
|
||||||
void debug_memory_reset(DebugMemory* mem)
|
void debug_memory_reset(DebugMemory* mem)
|
||||||
{
|
{
|
||||||
|
mem->size = 0;
|
||||||
mem->usage = 0;
|
mem->usage = 0;
|
||||||
|
|
||||||
mem->debug_range_idx = 0;
|
mem->debug_range_idx = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -32,6 +32,7 @@ struct TimingStat {
|
||||||
inline
|
inline
|
||||||
void update_timing_stat(TimingStat *stat)
|
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();
|
uint64 new_tick_count = __rdtsc();
|
||||||
|
|
||||||
stat->delta_tick = new_tick_count - stat->old_tick_count;
|
stat->delta_tick = new_tick_count - stat->old_tick_count;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user