ios - 调试和发布配置之间的内存使用差异

标签 ios objective-c cocos2d-iphone

我正在使用 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/

相关文章:

ios - 映射核心数据的最佳库

ios - 操作表或警报可以有交互元素吗?

ios - UITextField 不响应触摸或不会变为事件状态

ios - 读取 iOS 上其他应用的 badge 值

ios - 如何本地化应用名称?

ios - 在 View 中水平和垂直重复图像

ios - 停止跟踪 iOS 中的 Crashlytics 运行时

cocos2d-iphone - 需要帮助理解雪碧和纹理

testing - 功能测试cocos2d应用

ios - 写入使用NSKeyedArchiver编码的数据时,CoreBluetooth失败?