Vai*_*hta 7 ruby garbage-collection ruby-on-rails
由于http是无状态的,因此对应用程序的每个请求都会创建一个新对象.Rails如何清理未使用的对象/频率如何?
Bar*_*lly 12
简单回答:Ruby运行时有一个垃圾收集器.根据运行时(JRuby/JVM分代GC,IronRuby/CLR分代GC,经典Ruby /标记扫描GC),使用不同的算法.但基础知识非常简单:
收集的频率取决于GC的调整,可能受操作系统,物理内存量,操作系统内存压力,用户控制的调整,底层平台版本修订,动态优化参数等的影响.大部分它归结为决定酒吧所处的"免费记忆不足"测试,尽管世代收藏家的事情变得更加复杂.
如果您对此感兴趣,请查看Phusion团队关于写时垃圾收集的博客系列,以及他们为改进Ruby Enterprise Edition中的默认ruby gc方案所做的努力.
http://izumi.plan99.net/blog/index.php/2007/04/05/saving-memory-in-ruby-on-rails/
这个系列中的其他链接:
http://www.rubyenterpriseedition.com/faq.html