【问题标题】:How much memory should my iPhone app be taking up?我的 iPhone 应用程序应该占用多少内存?
【发布时间】:2014-05-30 10:46:47
【问题描述】:

我为 iPhone 创建了一个 Blackjack 应用程序。它在运行时占用 70 MB 内存。这太高了吗?对我来说似乎有点高。或者考虑到我正在使用一些图形/动画(用于卡片、芯片等),这是否正常

【问题讨论】:

  • 感谢您的回复!考虑到应用程序的类型,我通常还想知道我是否使用了比必要更多的内存?我很好奇我的编码是否从内存使用的角度来看效率非常低。知道这对于这种类型的应用程序是否处于高端?谢谢。
  • 不看实现很难说。您是否使用仪器运行该应用程序?它将向您展示代码中的哪些操作占用了最多的内存。如果您不熟悉乐器,我绝对建议您阅读本教程,至少只是为了了解它提供的功能类型。 raywenderlich.com/23037/how-to-use-instruments-in-xcode
  • @Tommy 我只是在使用 CoreAnimations。特别是方法 animateWithDuration:delay:options:animations:completion.
  • @PCoder123 我现在将阅读该教程。非常感谢您的建议。非常感谢

标签: ios iphone memory


【解决方案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 的内存。喜欢学习新事物。谢谢!
猜你喜欢
  • 1970-01-01
  • 2014-03-04
  • 2012-03-25
  • 1970-01-01
  • 2011-01-03
  • 1970-01-01
  • 2016-11-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多