仪器实际报告的是什么?

时间:2013-10-25 15:01:32

标签: ios memory-management cocos2d-iphone instruments

以下是我在游戏中使用的一小块代码,用于获取内存使用信息。

#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从哪里获取信息。它应该附加到这个过程,但它仍然必须从某个地方使用某些东西获取信息,所以我想知道那是什么东西以及从哪里抓起它。

1 个答案:

答案 0 :(得分:0)

我期望Instruments做的是它hooks into malloc(及相关)功能来监控所有分配。

我不确定这是仪器的作用,或者它是否能做到超越它。但它似乎是最合理,最适合所有目的,不会错过任何一种像工具一样使用的工具的解决方案。