我使用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
答案 0 :(得分:0)
你是否在生产模式下运行Goliath?你必须设置-e prod,它会在每个请求上重新加载代码。