【问题标题】:How do OS X applications "clean" memory?OS X 应用程序如何“清理”内存?
【发布时间】:2011-10-09 00:22:53
【问题描述】:

我想知道如何在 Mac OS X 上“清理”内存。如果你安装了开发者工具,你可以使用purge 命令来清理内存。然而,如果开发工具没有安装,这个命令将不起作用。其他应用程序能够做到这一点,所以我知道这是可能的。

如何编写一个“清理”内存的应用程序,这意味着删除不活动的内存并在可用内存中腾出更多空间?

【问题讨论】:

  • 好问题。我一直想知道这些应用程序是如何做到的。我猜他们不能使用私有 API,否则他们会被 Mac App Store 踢出​​。
  • 他们没有,真的。他们只是尽可能多地消耗内存来强制其他应用程序清除。
  • 我的朋友告诉我这看起来可能因为“离题”而关闭。这确实与编程有关:/
  • @是的,我认为如果您编辑问题并提出“OS X 上的‘清理内存’”或“Objective-C 中的‘清理内存’”的概念,则不太可能如果重新打开它会再次关闭(这将有助于您重新打开/回答它的机会
  • 这个问题可能有一些相关信息:clear buffer cache on Mac OS X

标签: objective-c cocoa macos memory-management


【解决方案1】:

一种解决方法是尽可能多地分配内存,然后释放该内存。请参阅下面从另一个示例中获取的代码:

ints = size / sizeof(unsigned int);

unsigned int* mem;
mem = (unsigned int*) malloc(size);

for (i=0; i<ints; i++) {
    mem[i] = rand();
}

free(mem);

当然,由您决定清除内存的含义,以及分配多少内存。

【讨论】:

  • 关于底部的注释:-> 决定分配多少的最佳方法是什么?
猜你喜欢
  • 1970-01-01
  • 2013-04-14
  • 1970-01-01
  • 2012-12-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-24
  • 2015-03-21
相关资源
最近更新 更多