gpt4 book ai didi

objective-c - iOS 上事件监视器中的实时字节与实际内存

转载 作者:技术小花猫 更新时间:2023-10-29 10:58:12 26 4
gpt4 key购买 nike

我正在开发一个 iOS 应用程序,它会创建很多小对象和 float ,并试图了解它消耗了多少内存。

当我运行“Allocations”工具时,它显示我有大约 2MB 的“Live Bytes”,并且这个数字在我浏览应用程序时大致保持不变(当应用程序繁忙时会增加到 3MB 左右,但是然后回落到 2MB)。

但是当我运行“Activity Monitory”工具时,我的应用程序的“实际内存”在完成启动后为 25MB,并且每当在我的 CALayer 中进行绘图时都会迅速增长。不到一分钟,它就超过了 100MB。

为什么“Live Bytes”显示 2MB,而“Real Memory”显示 100MB?

我的 CALayer 正在绘制 路径,它将 CPU 保持在 100% 几秒钟以完成单个绘制操作,并将所有这些点从 NSData 对象加载到CGPoint 值,然后再次释放它们(NSData 对象是绘制点的压缩版本,存储从一个点到下一个点的增量,所以我将它保存在 RAM 中但不保留实际的 CGPoints)。

它还将绘图结果缓存在 UIImage 中,并将这些保存在不会增长到超过 500KB 的先进先出数组中。

最佳答案

Real Memory 编号包括您的应用程序已使用并已释放的内存块,但操作系统尚未费心回收或重用(但如果需要可以)。实时内存是“脏”内存,如果您的应用程序正在运行并且内存太紧,操作系统无法在不终止您的应用程序的情况下回收它。

关于objective-c - iOS 上事件监视器中的实时字节与实际内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8795000/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com