原创作者: 花花公子   阅读:1590次   评论:0条   更新时间:2011-06-01    
运行该程序需要首先
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的速度领先优势。


评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

文章信息

Global site tag (gtag.js) - Google Analytics