我的 iPhone 应用程序应该占用多少内存?
Posted
技术标签:
【中文标题】我的 iPhone 应用程序应该占用多少内存?【英文标题】:How much memory should my iPhone app be taking up? 【发布时间】:2014-05-30 10:46:47 【问题描述】:我为 iPhone 创建了一个 Blackjack 应用程序。它在运行时占用 70 MB 内存。这太高了吗?对我来说似乎有点高。或者考虑到我正在使用一些图形/动画(用于卡片、芯片等),这是否正常
【问题讨论】:
你应该没事...***.com/questions/21071311/… 感谢您的回复!考虑到应用程序的类型,我通常还想知道我是否使用了比必要更多的内存?我很好奇我的编码是否从内存使用的角度来看效率非常低。知道这对于这种类型的应用程序是否处于高端?谢谢。 不看实现很难说。您是否使用仪器运行该应用程序?它将向您展示代码中的哪些操作占用了最多的内存。如果您不熟悉乐器,我绝对建议您阅读本教程,至少只是为了了解它提供的功能类型。 raywenderlich.com/23037/how-to-use-instruments-in-xcode @Tommy 我只是在使用 CoreAnimations。特别是方法 animateWithDuration:delay:options:animations:completion. @PCoder123 我现在将阅读该教程。非常感谢您的建议。非常感谢 【参考方案1】:要求不高的游戏(例如井字游戏)大约需要 10 MB。但是,你的有动画。我假设它是 2D 动画,因为 3D 游戏大约需要 500 MB,而更高级的游戏大约需要 1 GB。
不看代码在做什么,它似乎在一个不错的 2D Blackjack 应用程序的可接受范围内。
话虽如此,看看 Apple 对lowering an app's memory usage 的建议不会有什么坏处。
【讨论】:
太棒了,非常感谢!是的,只是 2D 动画。我一定会看看你建议的那个页面!【参考方案2】:观察:仅仅为了它而使用更少的内存是没有好处的。拥有 500mb 的未使用 RAM 比拥有 450mb 的 RAM 有什么好处?
根据观察结果,ios 中使用的常见机制是NSCache
。它 [大约] 是一个关联映射,它将保持事物的状态,除非或直到这样做会导致过度的内存压力。更普遍地使用相同的模式。使用可用的东西,除非或直到这样做会导致其他人出现问题。这就是存在内存不足警告的原因。开发人员和系统都使用此类缓存 - 例如每次致电[UIImage imageNamed:]
。
因此,除此之外,它还取决于您的资产、您的视图的排列方式以及许多其他因素。
视网膜 iPhone 5S 的分辨率为 1136x640 像素。所以这大约是 2.8mb 的数据。您提到动画:您是否有足够多的不同资产来添加多达 25 个动画屏幕?如果是这样,那就是 70mb。
你的看法如何?你有很多独立的观点吗?每个视图都有一个CALayer
,在正常情况下意味着 GPU 占用空间。与NSCache
一样,除非内存压力表明需要采取其他措施,否则会保留此类内存(即使这样,当前层次结构中的任何内容都必须保留其存储空间)。
【讨论】:
哇,你的 2.8mb 数据非常合适,我刚刚再次测试它,我有大约 30 个动画屏幕,我的应用程序占用了大约 80mb 的内存。喜欢学习新事物。谢谢!以上是关于我的 iPhone 应用程序应该占用多少内存?的主要内容,如果未能解决你的问题,请参考以下文章