3

这是我在游戏中用于获取内存使用信息的一小段代码。

#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 执行内存分析,以便发现我的游戏代码中的问题。但是,我注意到我的游戏内报告告诉我的内容与 Instruments 告诉我的内容之间存在差异。

有关更多信息,请访问此处

也就是说,我很好奇 Instruments 从哪里获取信息。它应该附加到该过程中,但它仍然必须使用某些东西从某处获取信息,所以我想知道那是什么以及它是从哪里获取的。

4

1 回答 1

0

我期望 Instruments 做的是它连接到 malloc(和相关)函数来监视所有分配。

我不确定这就是 Instruments 所做的,或者它是否做了任何超出此范围的事情。但它似乎是像 Instruments 这样的工具会使用的最合理、通用、不会错过的解决方案。

于 2013-10-25T18:38:26.127 回答