我正在对我的应用进行性能分析,想要查看应用在低内存情况下的行为。
我知道可以使用模拟器模拟低内存警告,但我不想模拟应用程序在触发内存警告时的行为,而是想看看应用在实际低内存环境下的行为。
为了逐渐增加内存使用量,我创建了一个调用 malloc(1024*1024) 的方法。
结果非常有趣。我可能理解有误,需要帮助。
在 Instruments Allocations 中,有一段时间应用程序在“Live Bytes”列上使用超过1GB,但在真实设备上运行时应用程序没有崩溃并且正常工作。
我知道可以使用模拟器模拟低内存警告,但我不想模拟应用程序在触发内存警告时的行为,而是想看看应用在实际低内存环境下的行为。
为了逐渐增加内存使用量,我创建了一个调用 malloc(1024*1024) 的方法。
结果非常有趣。我可能理解有误,需要帮助。
在 Instruments Allocations 中,有一段时间应用程序在“Live Bytes”列上使用超过1GB,但在真实设备上运行时应用程序没有崩溃并且正常工作。
查看 VM Tracker 中的 Resident/Dirty 大小,我得到了不同的结果,Resident 大约为 134MB,Dirty 大约为 78MB。
我在这里缺少什么?根据文档:
实时字节数:已分配但未释放的字节数。
常驻大小:实际使用的内存量。
为什么结果如此不同?谢谢