【问题标题】:How can I run a process with a hard memory limit on OS X?如何在 OS X 上运行具有硬内存限制的进程?
【发布时间】:2015-04-23 07:28:03
【问题描述】:

我正在实现一个算法,该算法需要在 4MB 的硬内存限制下运行。

有没有办法以某种方式运行一个进程,如果它超过了它的内存限制,它就会被杀死?或者只是简单地分析其分配以查看已分配的最大内存量?

【问题讨论】:

    标签: macos memory profiling low-level


    【解决方案1】:

    我认为 ulimit 是您正在寻找的: https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man3/ulimit.3.html

    Ulimit 并非一直有效,这里提到了限制进程系统资源的替代方法: How to limit memory of a OS X program? ulimit -v neither -m are working

    这里也问过同样的问题,所以这个问题可能会给这个问题带来一些启示,尤其是关于虚拟内存: https://apple.stackexchange.com/questions/43371/way-to-limit-how-much-ram-an-arbitrary-process-can-take-up

    您可能会通过遵循此提示以及使用 ulimit 获得硬限制: http://hints.macworld.com/article.php?story=201106020948369

    【讨论】:

      【解决方案2】:

      看这个用brew安装coretools: Timeout Command on Mac OS X? 然后使用 gtimeout -m 4096 myscript

      【讨论】:

      • gtimeout 似乎没有 -m 标志
      猜你喜欢
      • 2013-02-08
      • 2012-08-29
      • 2012-10-15
      • 2020-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-17
      • 1970-01-01
      相关资源
      最近更新 更多