阅读更多

29顶
0踩

编程语言
Ruby on Rails团队正在紧张的工作,将Rails迁移到采用Rack的新层次。什么是Rack?Rack为使用Ruby开发web应用提供了一个最小的模块化和可修改的接口。用可能最简单的方式来包装HTTP请求和响应,它为web 服务器,web框架和中间件的API进行了统一并提纯到了单一的方法调用。实现Rack能够让开发者在应用中使用很多现存的中间件部分。这个附加部分让Rails团队创建了Rails Metal,Rails Metal是一个围绕一般Rack中间件的封装wrapper,能够放在Rails请求的前面并使用Rails的session。Metal的出现给让Rails应用的运行速度极大加快,并且能够每秒钟同时处理成千上万的应用!Rails Metal很酷,它让Rails能够使用Rack中间件的强大性能,用来创建最快速的应用程序。

DHH(David Heinemeier Hansson)发表了一篇Rails Metal on the Ruby on Rails的博客,DHH解释了Metal使用的场景:

DHH 写道
Rails Metal可以用于类似大规模投票服务,必须要每秒处理大量请求和提供实时快速的响应,并且逻辑是非常简单的(2次数据库请求和返回一条string)。这种服务目前是由C来写的,但是我们将转换使用Rails Metal来写,能够提供同样的高性能。(如果C写的应用能用Rails来写,说明Rails的速度相当快了)


Ruby on Rails官网今天给出了一个Metal的测试数据:
引用

Rails action

Time per request : 1.244 [ms]
Throughput : 800 request/second

Metal

Time per request : 0.386 [ms]
Throughput : 3000 request/second

Metal表现强劲,测试详情查看:Performance of Rails Metal



Jesse提供了Metal范例代码:

class Poller < Rails::Rack::Metal
    def call(env)
      if env["PATH_INFO"] =~ /^\/poller/
        [[200], {"Content-Type" => "text/html"}, "Hello, World!"]
      else
        [[404], {"Content-Type" => "text/html"}, "Not Found"]
      end
    end
end


class OldPollerController < ApplicationController
      def poller
        render :text => "Hello World!"
      end
end


详情阅读:Ruby on Rails gets down to the Metal

以及Ruby on Rails官网对Metal的介绍:Introducing Rails Metal

推荐阅读:Ruby on Rack
29
0
评论 共 5 条 请登录后发表评论
5 楼 koalant 2008-12-23 10:51
Rails 和 Merb 的性能差别将逐渐缩小了。 不过两者还是有思想上的不同之处。
4 楼 tensiongyb 2008-12-22 22:59
看代码很像python的wsgi中间件
3 楼 鹤惊昆仑 2008-12-22 20:54
rack,错了,不好意思。。
2 楼 鹤惊昆仑 2008-12-22 20:53
rake和sequel是ruby世界里两颗耀眼的新星。
1 楼 liusong1111 2008-12-22 18:27
实际上merb开发者Ezra Zygmuntowicz早就给rails贡献过这个东西:
http://brainspl.at/articles/2008/04/25/hey-rails-nice-rack
后来由rails core team的Josh Peek引入这个玩意,不得不让人联想到政治问题。

不管怎样,对rack的支持,对rails是个大事件。除了性能提高,精巧的rack之上有相当多的中间件和adapter。
rails也可以提供更灵活的功能,比如类似这个:
http://www.javaeye.com/post/772964

发表评论

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

相关推荐

  • Ruby on Rails正式引入Metal

    Rack的实现方式使得开发者可以在自己的应用中使用许多现成的中间件,而这种特性使得Rails团队开发Metal成为可能。Metal是通用Rack中间件的包装,放置在Rails请求之前,并且可以访问Rails的会话。对于那些要求运行...

  • HHVM 是如何提升 PHP 性能的?

    HHVM 是 Facebook 开发的高性能 PHP 虚拟机,宣称比官方的快9倍,我很好奇,于是抽空简单了解了一下,并整理出这篇文章,希望能回答清楚两方面的问题: HHVM 到底靠谱么?是否可以用到产品中? 它为什么比官方的 ...

  • PHPRPC for rails

    我既想用到rails的敏捷开发,又想使用PHPRPC的跨语言、跨平台、跨环境的特性。...测试环境 ruby 1.8.6 + rails 2.3(注:rails的稳定版是2.2,但在2.3里引入了Metal,支持了使用rack的php for ru...

  • Rails 2.3.2发布,带有众多更新

    Ruby on Rails团队发布了最新版的Rails——Rails 2.3.2。Rails 2.3.2是在Rails 2.2发布后几个月出来的,进行了很多重要的更新,这对于所有Rails开发者来说实在是天大的喜讯。\相比于之前的版本,此次发布的Rails的...

  • HHVM 提升 PHP 性能

    HHVM 是 Facebook 开发的高性能 PHP 虚拟机,宣称比官方的快 9 倍,我很好奇,于是抽空简单了解了一下,并整理出这篇文章,希望能回答清楚两方面的问题: HHVM 到底靠谱么?是否可以用到产品中?它为什么比官方的...

  • 【转】HHVM是如何提升PHP性能的?

    下,并整理出这篇文章,希望能回答清楚两方面的问题: HHVM 到底靠谱么?是否可以用到产品中?...方案1,迁移到性能更好的语言上,如 Java、C++、Go。 方案2,通过 RPC 将功能分离出来用其它语言实现,让 PHP 做

  • PHP 性能优化

       回收可能根有细微的性能上影响,但这是把PHP 5.2与PHP 5.3比较时才有的。尽管在PHP 5.2中,记录...这里主要有两个领域对性能有影响。第一个是内存占用空间的节省,另一个是垃圾回收机制执行内存清理时的执行时

  • 从HipHop到HHVM如何优化PHP本身性能

    the Metal with HHVM]),修改起来的成本恐怕比写个虚拟机还大,而且对于一个上千人的团队,从头开始学习也是不可接受的。 方案2 是最保险的方案,可以逐步迁移,事实上 Facebook 也在朝这方面努力了,而且还...

  • 基于springboot大学生就业信息管理系统源码数据库文档.zip

    基于springboot大学生就业信息管理系统源码数据库文档.zip

  • 基于java的驾校收支管理可视化平台的开题报告.docx

    基于java的驾校收支管理可视化平台的开题报告

  • 原木5秒数据20241120.7z

    时间序列 原木 间隔5秒钟 20241120

  • 毕业设计&课设_基于 Vue 的电影在线预订与管理系统:后台 Java(SSM)代码,为毕业设计项目.zip

    毕业设计&课设_基于 Vue 的电影在线预订与管理系统:后台 Java(SSM)代码,为毕业设计项目.zip

  • 基于springboot课件通中小学教学课件共享平台源码数据库文档.zip

    基于springboot课件通中小学教学课件共享平台源码数据库文档.zip

  • 基于java的网上购物商城的开题报告.docx

    基于java的网上购物商城的开题报告

  • delphi 12 控件之Delphi人脸检测与识别Demo1fdef-main.zip

    Delphi人脸检测与识别Demo1fdef-main.zip

  • 基于java的咖啡在线销售系统的开题报告.docx

    基于java的咖啡在线销售系统的开题报告

  • 基于java的自助医疗服务系统的开题报告.docx

    基于java的自助医疗服务系统的开题报告.docx

  • Visual Basic编程入门与高级应用详解

    内容概要:本文档全面介绍了Visual Basic(VB)编程语言的基础知识和高级应用。首先概述了VB的基本特性和开发环境,随后详细讲述了VB的数据类型、变量、运算符、控制结构、数组、过程与函数、变量作用域等内容。接着介绍了窗体设计、控件使用、菜单与工具栏的设计,文件操作、数据库访问等关键知识点。最后讨论了VB的学习方法、发展历史及其在桌面应用、Web应用、数据库应用、游戏开发和自动化脚本编写等领域的广泛应用前景。 适合人群:初学者和中级程序员,尤其是希望快速掌握Windows桌面应用开发的人群。 使用场景及目标:①掌握VB的基础语法和开发环境;②学会使用VB创建复杂的用户界面和功能完整的应用程序;③理解数据库操作、文件管理和网络编程等高级主题。 其他说明:Visual Basic是一种简单易学且功能强大的编程语言,尤其适合用于开发Windows桌面应用。文中不仅覆盖了基础知识,还包括了大量的实用案例和技术细节,帮助读者快速提升编程技能。

  • 基于java的疫情期间高校防控系统开题报告.docx

    基于java的疫情期间高校防控系统开题报告.docx

  • 基于springboot+vue社区老年人帮扶系统源码数据库文档.zip

    基于springboot+vue社区老年人帮扶系统源码数据库文档.zip

Global site tag (gtag.js) - Google Analytics