gpt4 book ai didi

objective-c - 如何在 iOS/Cocoa 中找到集合对象的内存占用

转载 作者:行者123 更新时间:2023-12-01 17:59:52 25 4
gpt4 key购买 nike

我正在滚动我自己的对象缓存。它基本上是一个 NSMutableSet。

有没有办法(以编程方式)找出集合当前使用了多少内存,以便我可以触发一些不太重要的对象的清除?

最佳答案

定义“集合”。您用来维护集合的结构的大小?对象指针的大小?对象持有的实例变量的大小?

您可以根据需要在内存警告中清除数据。

找出对象的实例变量使用多少内存的 Objective-C 运行时方法是 class_getInstanceSize ,尽管我认为这不是正确的方法。一个拥有一个 NSData 和 5 MB 数据的对象的时钟将低于一个拥有两个 NSString 的对象。

因为我不知道你为什么要滚动自己的缓存,所以这就是我要做的。我会定义一种方法来计算出与我保留的元素成比例的成本。 (对于图像,假设宽度 * 高度。)然后我会使用 NSCache它支持为每个对象提供成本,保持最大成本并自动清除。

关于objective-c - 如何在 iOS/Cocoa 中找到集合对象的内存占用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11827464/

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