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

xiaobai2 · September 14, 2016 · Last by hlcfan replied at September 22, 2016 · 3190 hits

刚接触 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,有很多孔。

You need to Sign in before reply, if you don't have an account, please Sign up first.