独角兽和 copy_on_write_friendly?

Mik*_*iko 2 debian configuration ruby sinatra unicorn

在研究 Unicorn 配置选项时,我遇到了这个片段..

GC.respond_to?(:copy_on_write_friendly=) and
  GC.copy_on_write_friendly = true
Run Code Online (Sandbox Code Playgroud)

如果我理解正确,它优化了 Unicorn 如何处理工人之间的内存分配和资源共享?

我使用 Unicorn 在带有 Ruby 1.9.3 的服务器上为我的 Sinatra 应用程序提供支持。在我的独角兽配置中包含copy_on_write_friendly设置有什么缺点吗?

Kyl*_*ith 6

这不是一个配置选项,它是一个 Ruby 代码片段,如果 GC 对象具有该方法,它会告诉它设置 copy_on_write_friendly。例如,在 ruby​​ 主线 1.9.2p290 中:

1.9.2p290 :003 > GC.copy_on_write_friendly
NoMethodError: undefined method `copy_on_write_friendly' for GC:Module
    from (irb):3
    from /Users/kyle/.rvm/rubies/ruby-1.9.2-p290/bin/irb:16:in `<main>'
Run Code Online (Sandbox Code Playgroud)

据我所知,唯一支持该选项的 Ruby 解释器是 Ruby Enterprise Edition。这里有一些内容:http : //www.rubyenterpriseedition.com/faq.html

  • @NARKOZ 但需要明确的是,Ruby 2.0 的实现不包括相关方法(并且不需要任何东西来启用 COW)。 (2认同)