运行该程序需要首先
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的速度领先优势。
分享到:
- 2009-03-14 21:11
- 浏览 2121
- 评论(0)
- 论坛回复 / 浏览 (0 / 3152)
- 查看更多
相关推荐
在"Ruby on Rails入门例子"中,我们可能会遇到以下关键概念: - **路由(Routes)**:Rails的路由系统将URL映射到特定的控制器动作,定义了应用的导航结构。在`config/routes.rb`文件中配置路由规则。 - **生成器...
Rails提供了许多内置的便利功能,如自动路由、数据库迁移、测试支持以及强大的ActiveRecord对象关系映射(ORM)系统。 1. **主动记录(ActiveRecord)**:是Rails的核心组件之一,它将数据库操作与Ruby类绑定,使得...
学习Rails项目起步,你需要熟悉这些核心概念,并掌握如何创建和运行Rails应用,以及如何使用Rails的命令行工具。同时,理解MVC模式和Rails的约定优于配置(Convention Over Configuration, CoC)原则是至关重要的。...
在 Rails 应用程序中,Rake 通常用于数据库迁移、测试、清理等操作,以及启动后台任务。 在 Rails3 中,rake 不仅用于基本的项目管理,还可以用于启动后台任务,这在处理耗时操作、异步任务或者批量数据处理时非常...
在Rails开发中,为了增强用户体验,常常需要使用JavaScript来处理日期选择和管理。这篇博客“rails中使用javascript日期控件”探讨的就是如何在Rails应用中集成JavaScript日期控件,特别是通过一个名为WebCalendar....
在本篇中,我们将深入探讨Ruby模仿Rails MVC的实现以及Ubuntu环境下启动Ruby应用的相关步骤。 **模型(Model)** 在MVC架构中,模型层负责处理数据和业务逻辑。在Ruby中,我们通常会创建一个或多个类来代表数据库中...
标题 "在Rails中使用RSpec生产CHM文档" 暗示了这个话题是关于如何在Ruby on Rails(简称Rails)框架中使用RSpec测试工具来创建帮助文档,特别是以CHM(Microsoft Compiled HTML Help)格式。CHM文件是一种常见的...
以上只是Ruby on Rails众多特性和概念的一部分,实际使用中,开发者还会遇到如控制器的before_action、after_action,模型的validations,视图的局部变量,以及各种gem的使用等等。学习和熟练掌握Ruby on Rails,...
在弹出的对话框中,为项目命名,选择Rails版本,以及项目的保存位置。确认设置无误后,点击“Finish”开始创建项目。 Rails项目创建后,Aptana会自动生成基础的目录结构,包括app、config、db、lib等关键文件夹。在...
- **作品**: 除了《Rails 101 入门电子书》外,xdite还编写了其他几本书籍,如《Maintainable Rails View》、《Lean SaaS》以及《Land Dream Rails Job》等。 - **特色**: 这本书是中文世界唯一一本基于Rails 4.0.0+...
1. Rails 3.0: Rails 3是重大升级,引入了ActionController::Metal,这是一个轻量级的控制器,用于提高性能。同时,它引入了多路由引擎支持,如Rack中间件,使得与其他Web服务器的集成更加容易。此外,ActiveRecord...
rails, Ruby on Rails 欢迎使用 RailsRails 是一个web应用程序框架,它包括根据 Model-View-Controller ( MVC ) Pattern 创建数据库备份的web应用程序所需的所有内容。理解 MVC Pattern 是理解 Rai
Rails以其简洁优雅的语法、高效的开发速度以及良好的社区支持而闻名,这使得它成为构建现代API的理想选择之一。 ### 一、什么是RESTful API REST(Representational State Transfer)是一种软件架构风格,用于定义...
bugsnag-ruby, Rails Sinatra rack 和 ruby的Bugsnag错误监视 ruby的 Bugsnag异常报告器 ruby 异常报告器提供了从你的 Rails Sinatra/英镑/或者英镑的普通 ruby 应用程序中抛出的异常通知。 任何未捕获的异常都会...