used memory:c-array与NSMutableArray

JFS*_*JFS 1 arrays memory-management objective-c nsmutablearray

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

谢谢.

Sul*_*han 5

很明显,内存消耗NSArray将大于原始C阵列.

差异有多大?好吧,对于a中的每个值NSArray,每个基元double必须被包装,NSNumber因此每个值至少增加20个B,可能更多一些.

可以在此处找到一个估计值:Objective-C中类的内存大小

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