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

#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告诉我的内容之间存在差异。

有关更多信息,请访问please go here

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

最佳答案

我期望Instruments做的是它的hooks into malloc(及相关)函数来监视所有分配。

我不确定这是Instruments的功能,还是它在此之上和之外的功能。但这似乎是最合理的,万能的,万无一失的解决方案,例如Instruments这样的工具。

关于ios - 乐器实际报告什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19593330/

10-10 13:51