我为iPhone创建了一个Blackjack应用程序。它运行时占用70 MB的内存。这太高了吗?对我来说似乎有点高。或者这是正常的,因为我正在使用一些图形/动画(用于卡片,芯片等)。
答案 0 :(得分:16)
比Tic Tac Toe要求的游戏要求低于10 MB。但是,你的动画。我假设它是2D动画,因为3D游戏大约需要500 MB,而接近1 GB的装载则更高。
不看代码在做什么,它似乎在一个漂亮的2D Blackjack应用程序的可接受范围内。
话虽如此,看看Apple对lowering an app's memory usage的建议并没有什么坏处。
答案 1 :(得分:8)
观察:仅仅为了它而使用较少的内存是没有优势的。如何拥有500mb未使用的RAM比拥有450mb更好?
作为观察结果,iOS中使用的常见机制是NSCache
。它是[近似]一个关联映射,除非或直到这样做会导致过度的内存压力。更普遍地使用相同的模式。使用可用的东西,除非或直到这样做会导致其他人出现问题。这就是存在低内存警告的原因。这些高速缓存由开发人员和系统使用 - 例如每次拨打[UIImage imageNamed:]
。
除此之外,它取决于您的资产,您的观点如何安排以及一系列其他因素。
视网膜iPhone 5S的分辨率为1136x640像素。这就是大约2.8mb的数据。你提到动画:你有足够多的不同资产来添加最多25个动画屏幕吗?如果是那么那就是70mb。
您的观点如何?你是否保留了很多独立意见?每个视图都有CALayer
,在正常情况下,这意味着GPU占用空间。与NSCache
一样,除非内存压力指示需要执行其他操作,否则将保留此类内存(即使那时,当前层次结构中的任何内容都必须保留其存储空间)。