以下是我在游戏中使用的一小块代码,用于获取内存使用信息。
#include <mach/mach.h>
unsigned get_memory_bytes(void) {
struct task_basic_info info;
mach_msg_type_number_t size = sizeof(info);
kern_return_t kerr = task_info( mach_task_self(), TASK_BASIC_INFO, (task_info_t) &info, &size );
return kerr == KERN_SUCCESS ? info.resident_size : 0;
}
unsigned get_memory_kb(void) {
return get_memory_bytes() >> 10;
}
最近,我一直在使用Instruments执行内存分析,以便发现游戏代码中的问题。但是,我注意到我的游戏内报告告诉我和乐器告诉我的内容之间存在差异。
有关详情,please go here。
那就是说,我很好奇Instruments从哪里获取信息。它应该附加到这个过程,但它仍然必须从某个地方使用某些东西获取信息,所以我想知道那是什么东西以及从哪里抓起它。
答案 0 :(得分:0)
我期望Instruments做的是它hooks into malloc(及相关)功能来监控所有分配。
我不确定这是仪器的作用,或者它是否能做到超越它。但它似乎是最合理,最适合所有目的,不会错过任何一种像工具一样使用的工具的解决方案。