zlgopen / awtk-mvvm

Model-View-ViewModel for AWTK
GNU Lesser General Public License v2.1
88 stars 27 forks source link

如何查询内存占用? #36

Closed ColdGenerator closed 2 years ago

ColdGenerator commented 2 years ago

你好,我想知道demo运行时的实际内存占用, 有什么方法吗。 我在系统Ubuntu 18.04上使用smem查询,得到的USS(进程独自占用的内存,不包括共享库)有30+MB,这似乎不太合理。 企业微信截图_16528614599898

xianjimli commented 2 years ago
/**
 * @method tk_mem_dump
 * 显示内存信息。
 *
 * @return {void} 返回void。
 */
void tk_mem_dump(void);
ColdGenerator commented 2 years ago

谢谢,这个方法我会使用了; 现在有一个新的问题,我在awtk-mvvm中修改JERRY_GLOBAL_HEAP_SIZE的值,监测demo占用内存会有变化; 但是在awtk-jerryscript中修改JERRY_GLOBAL_HEAP_SIZE或者激活JERRY_SYSTEM_ALLOCATOR,demo占用内存没有明显变化; 是因为这个显示内存信息的函数只监测堆的使用,然后awtk-jerryscript默认变量存储到栈上吗? 但是我如果在awtk-jerryscript修改JERRY_GLOBAL_HEAP_SIZE到一个较小的值,执行demo会报错“Error: ERR_OUT_OF_MEMORY”,关于是否使用了jerrscript内存池,这一点我很迷惑。

ColdGenerator commented 2 years ago

补充一下,在mvvm中有设置”-DJERRY_EXTERNAL_CONTEXT=1 -DJERRY_GLOBAL_HEAP_SIZE=2048“; 在awtk-jerryscript中没有设置“-DJERRY_EXTERNAL_CONTEXT”,如果激活,执行demo会core dumped。

xianjimli commented 2 years ago

jerry内部的问题,我也不太了解。