要求葡萄大大减缓了歌利亚

时间:2015-06-02 04:08:48

标签: ruby grape-api goliath

我使用Goliath编写了一个“Hello World”应用,我决定在其上添加Grape

#!/usr/bin/env ruby

require 'rubygems'
require 'bundler/setup'
Bundler.setup :default
require 'goliath'
require 'grape'   # <-- Comment out this line will hugely increase performance, but why?

class Server < Goliath::API
  def response(env)
    [200, {}, 'Hello, world!']
  end
end

我对它进行了基准测试:

ab -n 1000 -c 100 http://localhost:9000/

它表明每秒可以处理大约250个请求。但是当我注释掉require 'grape'行时,这个值突然增加到大约700.任何人都可以回答为什么简单的require会带来如此巨大的差异吗?

P.S。我使用MRI 2.2.2

1 个答案:

答案 0 :(得分:0)

你是否在生产模式下运行Goliath?你必须设置-e prod,它会在每个请求上重新加载代码。