rails metal使用sinatra的例子,以及速度对比

运行该程序需要首先
gem install rack sinatra thin 安装sinatra和thin
gem install rails --source http://gems.rubyonrails.org 安装rails2.3.1(2.3RC2)

app/metal/hello.rb 是一个sinatra构造的rack中间件
app/controllers/hello_controller.rb 是传统的rails controller

运行:
thin start或者./script/server 启动rails
rackup -s thin -p 3000 app/metal/hello.rb启动单独的sinatra应用

访问 /hello/sinatra 是rails传统controller,
访问 /sinatra 则是sinatra应用,通过metal或者单独运行,
两者的返回值是一样的。

在我的机器上(Ubuntu 8.04, Intel Atom N270 @1.60GHz)

运行ab -n 100 http://localhost:3000/hello/sinatra 的结果是

Requests per second: 16.69 [#/sec] (mean)
Time per request: 59.923 [ms] (mean)

wujiang@wujiang-laptop:~$ ab -n 100 http://localhost:3000/sinatra
Requests per second: 71.78 [#/sec] (mean)
Time per request: 13.932 [ms] (mean)

直接运行sinatra, ab -n 100 http://localhost:3000/sinatra
Requests per second: 208.39 [#/sec] (mean)
Time per request: 4.799 [ms] (mean)

可以看到单独运行sinatra的效率是metal的三倍

再来测试生产环境,thin -e production start 启动rails生产环境

wujiang@wujiang-laptop:~$ ab -n 100 http://localhost:3000/hello/sinatra
Requests per second: 81.09 [#/sec] (mean)
Time per request: 12.332 [ms] (mean)

wujiang@wujiang-laptop:~$ ab -n 100 http://localhost:3000/sinatra
Requests per second: 163.75 [#/sec] (mean)
Time per request: 6.107 [ms] (mean)

最后 thin -R app/metal/hello.rb -e production -p 3000 start 启动sinatra生产环境
Requests per second: 450.56 [#/sec] (mean)
Time per request: 2.219 [ms] (mean)

可以看到sinatra仍然是metal速度的2.7倍,sinatra仍然具有对于metal的速度领先优势。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值