feat(sysmon): show max memory usage (#5661)

This commit is contained in:
Gabor Kiss-Vamosi
2024-02-16 16:46:49 +01:00
committed by GitHub
parent 09ff66b3a4
commit 84f72db6d9
2 changed files with 18 additions and 5 deletions
+5 -2
View File
@@ -271,10 +271,13 @@ static void mem_observer_cb(lv_observer_t * observer, lv_subject_t * subject)
uint32_t used_size = mon->total_size - mon->free_size;;
uint32_t used_kb = used_size / 1024;
uint32_t used_kb_tenth = (used_size - (used_kb * 1024)) / 102;
uint32_t max_used_kb = mon->max_used / 1024;
uint32_t max_used_kb_tenth = (mon->max_used - (max_used_kb * 1024)) / 102;
lv_label_set_text_fmt(label,
"%"LV_PRIu32 ".%"LV_PRIu32 " kB, %d%%\n"
"%d%% frag.",
"%"LV_PRIu32 ".%"LV_PRIu32 " kB (%d%%)\n"
"%"LV_PRIu32 ".%"LV_PRIu32 " kB max, %d%% frag.",
used_kb, used_kb_tenth, mon->used_pct,
max_used_kb, max_used_kb_tenth,
mon->frag_pct);
}
+13 -3
View File
@@ -141,10 +141,13 @@ void * lv_malloc_core(size_t size)
#if LV_USE_OS
lv_mutex_lock(&state.mutex);
#endif
state.cur_used += size;
state.max_used = LV_MAX(state.cur_used, state.max_used);
void * p = lv_tlsf_malloc(state.tlsf, size);
if(p) {
state.cur_used += lv_tlsf_block_size(p);
state.max_used = LV_MAX(state.cur_used, state.max_used);
}
#if LV_USE_OS
lv_mutex_unlock(&state.mutex);
#endif
@@ -157,8 +160,14 @@ void * lv_realloc_core(void * p, size_t new_size)
lv_mutex_lock(&state.mutex);
#endif
size_t old_size = lv_tlsf_block_size(p);
void * p_new = lv_tlsf_realloc(state.tlsf, p, new_size);
if(p_new) {
state.cur_used -= old_size;
state.cur_used += lv_tlsf_block_size(p_new);
state.max_used = LV_MAX(state.cur_used, state.max_used);
}
#if LV_USE_OS
lv_mutex_unlock(&state.mutex);
#endif
@@ -175,7 +184,8 @@ void lv_free_core(void * p)
#if LV_MEM_ADD_JUNK
lv_memset(p, 0xbb, lv_tlsf_block_size(data));
#endif
size_t size = lv_tlsf_free(state.tlsf, p);
size_t size = lv_tlsf_block_size(p);
lv_tlsf_free(state.tlsf, p);
if(state.cur_used > size) state.cur_used -= size;
else state.cur_used = 0;