擅长:python、mysql、java
<p>并不是所有的操作系统都会以同样的方式将内存“压力”传递给正在运行的进程,这意味着几乎永远不会。Java允许您明确限制其内存使用。Python、Go和其他一些有点激进的方法来收集内存。</p>
<p>cgroups用于实现Docker和Kubernetes下的容器,这可能会导致<code>malloc()</code>返回NULL,但会导致向进程发送一个信号来终止它。</p>
<p>FWIW,JVM为您提供了一种方法(通过<code>-Xmx</code>)来控制虚拟机的内存使用,就像其他系统所希望的那样。Docker容器中的Java是非常容易管理的,因为Python或Go的命中率更高。这些都是“好”的技术,但是容器的限制应该(我希望)推动改进垃圾收集“努力”的表达方式。:\</p>
<p>这感觉像是没有答案,对此我很不满意。你可以读到这篇文章,直到有人发布一些像“更好的投票”这样的帖子。我会删除这个一旦一些不可避免的暴躁投票出现。;)</p>