在我的应用程序中,我正在维护一个 NSMutableDictionary 对象,该对象在正常情况下将包含大约 400-500 个对象,在某些情况下可能包含 1500-2000 个。它包含的对象都是 NSMutableArray 对象,每个对象通常包含 10-15 个对象(一个简单的 NSObject 扩展器和几个 NSString 和 NSDate 属性添加)并且可能包含多达 50 个。
根据我的实际计算(假设每个对象 100 字节?)这大约是 5 MB 的低端和 80 MB 的高端,所以我不确定这是一个好主意。
在 iPhone 上,在您必须实现某种形式的缓存之前,您希望这样的结构有多大?
Best Answer-推荐答案 strong>
鉴于您可能会在低至 20MB 的情况下耗尽内存(在 iPhone 3G 上),您将需要重新考虑您的设计。 3G 有 128MB 的 RAM,3GS 有 256MB,iPhone 4 有 512MB,但您的应用程序可用的内存量要少得多。当我在 3G 上工作(并遇到限制)时,我发现这个数字 float 在 20-25MB 左右。
问题是为什么你需要同时在内存中的所有对象?您可以将这些数据存储到磁盘上,它可能不会让您的应用程序减慢很多。比不断达到内存警告阈值要好一点,因为在这种情况下,您要么需要缩小字典的大小,要么发现应用程序崩溃。
关于iphone - 我的代码是否使我的 iPhone 负担过重?,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/5426966/
|