【问题标题】:iOS - "Clean memory" or "Free memory" : how to do itiOS - “清理内存”或“释放内存”:怎么做
【发布时间】:2013-08-31 16:03:27
【问题描述】:

我在 App Store 上有一个监控系统状态的应用。我的用户需要一个可用内存按钮来清理 RAM。我知道iOS像OS X一样管理内存,所以非活动内存实际上是空闲内存,对吧?简单地说,非活动内存有助于快速运行一些最近的应用程序。在 iOS 中如何清理内存?我看到很多应用都这样做了,但是怎么做呢?

【问题讨论】:

  • 我不相信这在 iOS 上是可能的。

标签: ios memory memory-management


【解决方案1】:

它的一般工作方式是分配大块内存,迫使其他应用放弃其非必要内存并强制关闭其他应用。在收到自己的内存警告之前,它们会在内部尽可能多地获取内存,然后释放所有内容。

【讨论】:

  • 好方法。但是,我怎样才能用代码做到这一点?实际上,使用 ARC,我该怎么做?
  • SO 不是一个“给我代码”的网站,而是一个针对问题提出具体问题或就您已经编写的代码的特定方面获得帮助的网站。我建议阅读 malloc 和 free
  • @Andrea Mario Lufino 你找到方法了吗?
【解决方案2】:

您可以按照用户的回答执行操作,并使用mallocmemset 在循环中分配内存,直到获得didReceiveMemoryWarning。这会在你的应用程序即将被 iOS 杀死之前获得内存,所以应该足够了。

This project 说明了如何做到这一点。顺便说一句,这是一个非常方便的应用程序。

有一个警告,根据我的经验,iOS 不允许 所有理论上可能的内存 分配给应用程序,即使所有其他应用程序都处于非活动状态。 This SO answer 使用了我在许多设备中提到的项目,它证明 iOS 会为您提供一定数量的内存,而不会更多,无论设备中运行什么。

【讨论】:

    猜你喜欢
    • 2010-09-19
    • 2020-09-26
    • 2011-07-25
    • 1970-01-01
    • 2014-12-11
    • 1970-01-01
    • 1970-01-01
    • 2013-10-15
    • 1970-01-01
    相关资源
    最近更新 更多