我正在使用 taskInfo
以编程方式获取我的应用程序使用的内存量。代码基本上是
kern_return_t result = task_info(mach_task_self(), TASK_BASIC_INFO, (task_info_t)&info, &num); if (result == KERN_SUCCESS ) { memoryUsed = (double)(info.resident_size/1000000.0);
当我在 Debug
配置上运行我的应用程序时,它报告使用的内存比在 Distribution
上运行它时要多得多(大约 100MB 的差异)。由于链接了其他一些第三方库,我不确定他们是否在做一些奇怪的事情。
我的问题是假设我的应用程序没有做任何奇怪的事情,有如此巨大的差异是否正常?
附言: 我也在使用 cocos2d
但我认为这很安全。
最佳答案
我想说这是预期的行为。至少在我比较 DEBUG 和 RELEASE 构建之间的内存使用情况的所有项目中一直都是这样。
一个原因显然是在 DEBUG 构建中正在完成更多的事情,并且可能会保存在内存中。主要调试你的和框架的东西(即cocos2d)。各种断言和日志也会增加更多(临时)内存使用量。连接的调试器和调试服务也可能会消耗应用程序的额外内存。
没什么可担心的。仅在发布版本中测量内存使用情况,因为这最终将在用户设备上运行。
关于ios - 调试和发布配置之间的内存使用差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22548506/