我想知道是否有一个经验法则来估计raugh运行时内存的使用情况。
这是我目前的“心理算法”:
总共17 + 4.5 + 16 + 4 = 41.5 MB运行时内存使用
这是一种合理的估算方法吗?
答案 0 :(得分:1)
我写了article about calculating / estimating the size of in-memory resources。
你做了几个假设,其中一些是错误的。请允许我指出它们:
具有32位颜色的2048x2048使用完全 4 MB。在16位颜色深度,它将是一半。如果你制作纹理NPOT(推荐)并使用.pvr.ccz作为文件格式(也推荐),你可以修剪更多的内存。
MP3通常不会在内存中完整加载。 MP3是一种流式格式。播放正确,只需要少量的内存缓冲区来播放(播放)MP3。
您无法通过查看.h / .m文件的文件大小来估计类实例的大小。这是完全错误的,因为您将Apple(源代码,文本)与Oranges(类对象,二进制)进行比较。但你是对的,几乎在所有情况下都可以忽略类实例的大小。大多数cocos2d节点类实例使用少于512字节 - 只计算类'ivars所需的内存。您可以使用class_getInstanceSize自行检查类实例的大小。
最后,这些类型的估算仅在您对应用程序的项目或功能有所了解时才有用,并且您需要估计资源使用情况,以确保您不会分配千兆字节的内存。在所有其他情况下,使用Instruments监视应用程序的实际内存使用情况。