|
无意中发现个问题,当循环创建窗体后再依次删除,用GUI_ALLOC_GetNumFreeBytes查看内存分配发现有“泄露”,观察了每次创建和删除的内存使用发现创建的时候会出现比释放多消耗的情况,有遇到过类似问题的大佬吗,会是什么原因呢?
int mem_before = GUI_ALLOC_GetNumFreeBytes();
int mem_creation[5];
int mem_free[5];
GUI_HWIN hwnd[5];
for (int i = 0; i < 5; i++) {
mem_creation[i] = GUI_ALLOC_GetNumFreeBytes();
hwnd[i] = WM_CreateWindowAsChild(10, 50, 145, 40, _hWindow1, WM_CF_SHOW | WM_CF_MEMDEV, _cbChild, 0);
mem_creation[i] -= GUI_ALLOC_GetNumFreeBytes();
}
for (int i = 0; i < 5; i++) {
mem_free[i] = GUI_ALLOC_GetNumFreeBytes();
WM_DeleteWindow(hwnd[i]);
mem_free[i] = GUI_ALLOC_GetNumFreeBytes() - mem_free[i];
}
int mem_after = GUI_ALLOC_GetNumFreeBytes();
int mem_diff = mem_before - mem_after;
mem_creation 0x15f0f904 {60, 92, 60, 60, 60}
mem_free 0x15f0f8e8 {60, 60, 60, 60, 60} |
|