【发布时间】:2013-11-04 18:39:51
【问题描述】:
这是我在游戏中用于获取内存使用信息的一小段代码。
#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 从哪里获取信息。它应该附加到进程中,但它仍然必须使用某些东西从某个地方获取信息,所以我想知道那是什么东西以及它是从哪里获取的。
【问题讨论】:
-
我最终对 CCDirector 做了一个小手术,以便在显示 FPS 等时添加 Mb 行……使用与您的代码几乎相同的代码。我相信这个:)
-
很高兴知道我不是唯一使用它的人 :) 谢谢!
标签: ios memory-management cocos2d-iphone instruments