新手问题 Ruby 是如何管理内存的?

xiaobai2 · 2016年09月14日 · 最后由 hlcfan 回复于 2016年09月22日 · 3198 次阅读

刚接触 ruby 不久,想知道 ruby 的内存是如何管理的,当它达到最大的值之后,会释放吗?有没有好的资料吗?

不会释放,请使用 oom-killer

Ruby 用的是 Gabage Collection

这篇文章介绍的是 Ruby 2.2 引进的 Incremental Garbage Collection,不过开头部分有简单介绍普通 GC

如果程序有内存泄露,导致系统内存被占满了,那 Ruby 是不会自动释放内存的,我觉得这应该是操作系统的工作。

自动 GC 和手动 GC, 当然你要确保没有内存泄漏,什么东西会标记为垃圾(可回收)这个需要注意

Swiss cheese cheese

#5 楼 @hlcfan 哈哈,一张很形象的图片看得我云里雾里,求解释

@xiaobai2 和二楼说的意思一样,Ruby 不会自动释放的,但是会回收,所以只会越来越大。形象地理解起来就像一个 cheese,有很多孔。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号