1

我需要在不同的数组中存储多达 1.000.000 个双精度值(在计算运行期间)。到目前为止,我正在使用一个NSMutableArray,但看起来内存使用量很大。一种想法是使用 c 数组以避免将对象存储在NSMutableArray. 有没有办法粗略估计 NSMutableArray 与 c-array 的内存使用情况?(我找不到任何关于NSNumber-object 与 double 或 float 等基元大小的信息)。

谢谢。

4

1 回答 1

5

很明显,内存消耗NSArray将大于原始 C 数组的内存消耗。

差异会有多大?好吧,对于 a 中的每个值NSArray,每个原语double都必须由 a 包装,NSNumber因此为每个值添加至少 20 B,可能更多。

可以在这里找到一种估计:Objective-C 中类的内存大小

无论如何,在内存中存储 1 000 000 个值总是有点奇怪。也许最好将它们存储在一个文件中,然后在需要时加载它们(例如使用内存映射文件)。

于 2013-08-26T10:51:25.667 回答