`
花花公子
  • 浏览: 132036 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

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的速度领先优势。


分享到:
评论

相关推荐

    Ruby on Rails入门例子

    在"Ruby on Rails入门例子"中,我们可能会遇到以下关键概念: - **路由(Routes)**:Rails的路由系统将URL映射到特定的控制器动作,定义了应用的导航结构。在`config/routes.rb`文件中配置路由规则。 - **生成器...

    Ruby on Rails入门经典-例子

    Rails提供了许多内置的便利功能,如自动路由、数据库迁移、测试支持以及强大的ActiveRecord对象关系映射(ORM)系统。 1. **主动记录(ActiveRecord)**:是Rails的核心组件之一,它将数据库操作与Ruby类绑定,使得...

    rails 项目起步示例

    学习Rails项目起步,你需要熟悉这些核心概念,并掌握如何创建和运行Rails应用,以及如何使用Rails的命令行工具。同时,理解MVC模式和Rails的约定优于配置(Convention Over Configuration, CoC)原则是至关重要的。...

    Rails3 使用rake启动后台任务

    在 Rails 应用程序中,Rake 通常用于数据库迁移、测试、清理等操作,以及启动后台任务。 在 Rails3 中,rake 不仅用于基本的项目管理,还可以用于启动后台任务,这在处理耗时操作、异步任务或者批量数据处理时非常...

    rails中使用javascript日期控件

    在Rails开发中,为了增强用户体验,常常需要使用JavaScript来处理日期选择和管理。这篇博客“rails中使用javascript日期控件”探讨的就是如何在Rails应用中集成JavaScript日期控件,特别是通过一个名为WebCalendar....

    ruby 例子 模仿rails 的 mvc

    在本篇中,我们将深入探讨Ruby模仿Rails MVC的实现以及Ubuntu环境下启动Ruby应用的相关步骤。 **模型(Model)** 在MVC架构中,模型层负责处理数据和业务逻辑。在Ruby中,我们通常会创建一个或多个类来代表数据库中...

    在rails中 使用RSpec生产CHM文档

    标题 "在Rails中使用RSpec生产CHM文档" 暗示了这个话题是关于如何在Ruby on Rails(简称Rails)框架中使用RSpec测试工具来创建帮助文档,特别是以CHM(Microsoft Compiled HTML Help)格式。CHM文件是一种常见的...

    ruby on rails轻松使用

    以上只是Ruby on Rails众多特性和概念的一部分,实际使用中,开发者还会遇到如控制器的before_action、after_action,模型的validations,视图的局部变量,以及各种gem的使用等等。学习和熟练掌握Ruby on Rails,...

    使用Aptana+Rails开发Rails Web应用(中文)

    在弹出的对话框中,为项目命名,选择Rails版本,以及项目的保存位置。确认设置无误后,点击“Finish”开始创建项目。 Rails项目创建后,Aptana会自动生成基础的目录结构,包括app、config、db、lib等关键文件夹。在...

    Rails 101 入门电子书

    - **作品**: 除了《Rails 101 入门电子书》外,xdite还编写了其他几本书籍,如《Maintainable Rails View》、《Lean SaaS》以及《Land Dream Rails Job》等。 - **特色**: 这本书是中文世界唯一一本基于Rails 4.0.0+...

    Rails进行敏捷Web开发(所有版本的源码rails3.0-4.0)

    1. Rails 3.0: Rails 3是重大升级,引入了ActionController::Metal,这是一个轻量级的控制器,用于提高性能。同时,它引入了多路由引擎支持,如Rack中间件,使得与其他Web服务器的集成更加容易。此外,ActiveRecord...

    rails, Ruby on Rails.zip

    rails, Ruby on Rails 欢迎使用 RailsRails 是一个web应用程序框架,它包括根据 Model-View-Controller ( MVC ) Pattern 创建数据库备份的web应用程序所需的所有内容。理解 MVC Pattern 是理解 Rai

    Rails上的API:使用Rails构建REST APIAPIs on Rails: Building REST APIs with Rails

    Rails以其简洁优雅的语法、高效的开发速度以及良好的社区支持而闻名,这使得它成为构建现代API的理想选择之一。 ### 一、什么是RESTful API REST(Representational State Transfer)是一种软件架构风格,用于定义...

    bugsnag-ruby, Rails Sinatra rack 和 ruby的Bugsnag错误监视.zip

    bugsnag-ruby, Rails Sinatra rack 和 ruby的Bugsnag错误监视 ruby的 Bugsnag异常报告器 ruby 异常报告器提供了从你的 Rails Sinatra/英镑/或者英镑的普通 ruby 应用程序中抛出的异常通知。 任何未捕获的异常都会...

Global site tag (gtag.js) - Google Analytics