Browse Source

fix: sys内存最大消耗值没有正确记录

Wendal Chen 2 years ago
parent
commit
ba64cfc945
2 changed files with 6 additions and 1 deletions
  1. 2 1
      app/port/luat_malloc_air101.c
  2. 4 0
      platform/common/mem/wm_mem.c

+ 2 - 1
app/port/luat_malloc_air101.c

@@ -150,6 +150,7 @@ void* luat_heap_calloc(size_t count, size_t _size) {
 
 extern unsigned int heap_size_max;
 extern unsigned int total_mem_size;
+extern unsigned int min_free_size;
 extern size_t __heap_start;
 extern size_t __heap_end;
 void luat_meminfo_sys(size_t* total, size_t* used, size_t* max_used)
@@ -163,7 +164,7 @@ void luat_meminfo_sys(size_t* total, size_t* used, size_t* max_used)
     *used = (*total) - (stat.xAvailableHeapSpaceInBytes);
 #else
     *used = heap_size_max - total_mem_size;
-    *max_used = *used;
+    *max_used = heap_size_max - min_free_size;
     *total = heap_size_max;
 #endif
 }

+ 4 - 0
platform/common/mem/wm_mem.c

@@ -684,6 +684,8 @@ void * mem_realloc_debug(void *mem_address, u32 size)
 			*mem_re_addr = length;
 			mem_re_addr ++;
 			total_mem_size -= length;
+            if (total_mem_size < min_free_size)
+                min_free_size = total_mem_size;
 		}
         tls_os_release_critical(cpu_sr);	
 		tls_os_sem_release(mem_sem);
@@ -740,6 +742,8 @@ void *mem_calloc_debug(u32 n, u32 size)
 			*buffer = length;
 			buffer ++;
 			total_mem_size -= length;
+            if (total_mem_size < min_free_size)
+                min_free_size = total_mem_size;
 		}
 
         tls_os_release_critical(cpu_sr);