参考 http://www.modrails.com/documentation/Users%20guide%20Nginx.html#spawning_methods_explained (这个是 Nginx Passenger 的解释;Apache Passenger 应该也是类似的)
大致是这样的:Passenger 有一个父进程,在 Passenger 启动时,加载了 Rails 框架以及项目的基础环境;然后等待请求。在接收到请求后,fork 自己生成一个子进程去处理。
由于 rails 应用启动很慢,但是 fork 的时候会用到 copy on write 技术,所以非常快。这样就能很快得创建 worker 进程去处理请求。
Compilers For Free 里提到的《Understanding Computation》这本书的优惠码(RUBYCONF)不能用了。但是网上可以搜“oreilly coupon”找到半价优惠码。
dalli 里曾经引入了 EM(或者 em-synchrony),但后来被移除了。dalli 的作者也是 sidekiq 的作者,很推崇 Celluloid
但是你的硬件性能提升了……
#1 楼 @aptx4869 attr_accessor 可以识别,算是类宏吧?
看它的源码 https://github.com/tmm1/ripper-tags/blob/master/lib/ripper-tags/parser.rb#L67 ,对 define_method
、attr_accessor
都做了处理。比 ctags 棒