gpt4 book ai didi

iphone - Objective C iPhone 性能问题

转载 作者:行者123 更新时间:2023-12-03 17:29:48 24 4
gpt4 key购买 nike

好的,我正在开发一个 iPhone 应用程序,我有一个遵循 Singleton 设计模式的 Model 类。

现在我里面有一个 NSArray,它在 init 方法中初始化为大约 1000 个 NSString。

现在我需要在某些 View Controller 中使用这些数据。所以我导入 Model.h,在 View Controller 中创建一个 NSString 对象数组并为其设置数据。但现在的问题是,现在我已经分配了 2000 个 NSString,出于内存考虑,我认为这在 iPhone 上不是一件好事。

释放模型对象不会有帮助,因为我已经重写了释放方法以根据模式释放任何内容,而且我现在无法更改设计,因为现在很多代码都假设模型是单例。

并且将来最初的 NSString 可能会增长到 2000 甚至更多,然后我将一次分配 4000 个 NSString ....

我对如何进行有点困惑,有什么建议

最佳答案

几千个字符串几乎不占用任何内存。 4000 个字符串需要几百 kB,具体取决于长度。 (这里的经验法则是字符串长度 + 20)。

编辑:实际上可能更像是字符串长度 + 30 或 40;我不确定 NSArray 会增加多少开销。

重新编辑:鉴于以下问题中的信息;你可能最多可以加载几百个字符串;就在您正在浏览的区域附近;基本上将你的 SQLite 访问变成一个稀疏数组,在搜索区域周围缓存一些字符串。当然,我并不认为这是必要的。如果字符串是位置名称,则它们的平均字节大小可能为 20-30 字节;给出(非常)粗略的估计 300k 内存,将它们全部永久保存在内存中,大大减少访问时间并提供更好的用户体验。 iPhone 没有太多 RAM;但你至少可以负担得起几兆字节; 30 万不会让你折断背部。

关于iphone - Objective C iPhone 性能问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2712212/

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