论坛首页 编程语言技术论坛

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

浏览 3117 次
精华帖 (3) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-03-14  
运行该程序需要首先
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的速度领先优势。


论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics