RUBY_HEAP_MIN_SLOTS (默认 10_000) - 堆槽的初始数量和所有时间的最小槽数。一个堆槽可以容纳一个 Ruby 对象。
RUBY_HEAP_FREE_MIN (默认 4_096) - 垃圾收集器完成运行后应该存在的空闲槽数。如果少于定义的,它会根据 RUBY_HEAP_SLOTS_INCREMENT 和 RUBY_HEAP_SLOTS_GROWTH_FACTOR 参数分配新的
RUBY_HEAP_SLOTS_INCREMENT (默认 10_000) - 使用所有初始插槽时要分配的新插槽数。第二堆。
RUBY_HEAP_SLOTS_GROWTH_FACTOR(默认 1.8)- 用于确定要分配多少新插槽的乘法因子(RUBY_HEAP_SLOTS_INCREMENT * 乘法因子)。对于堆 #3 及以后的堆。
RUBY_GC_MALLOC_LIMIT (默认 8_000_000) - 在触发垃圾收集器之前可以分配的 C 数据结构的数量。
Ruby 垃圾收集器的默认设置并未针对 Rails 进行优化,Rails 使用大量内存并频繁创建和销毁大型对象。最佳值取决于应用程序本身,您可以在不同的设置下分析垃圾收集:http ://www.ruby-doc.org/core-2.0/GC/Profiler.html
您还可以使用 New Relic、gdb.rb 或使用像 scrap(https://github.com/cheald/scrap/tree/master)这样的 gem 来监控 GC。
以下是您可能感兴趣的一些文章:
https://www.coffeepowered.net/2009/06/13/fine-tuning-your-garbage-collector/
http://technology.customink.com/blog/2012/03/16/simple-garbage-collection-调整轨道/
http://snaprails.tumblr.com/post/241746095/rubys-gc-configuration