阅读更多

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 也在朝这方面努力了,而且还...

  • 白色大气风格的旅游酒店企业网站模板.zip

    白色大气风格的旅游酒店企业网站模板.zip

  • python实现用户注册

    python实现用户注册

  • 【图像压缩】基于matlab GUI Haar小波变换图像压缩(含PSNR)【含Matlab源码 9979期】.zip

    Matlab领域上传的视频均有对应的完整代码,皆可运行,亲测可用,适合小白; 1、代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作

  • (177354822)java小鸟游戏.zip

    内容来源于网络分享,如有侵权请联系我删除。另外如果没有积分的同学需要下载,请私信我。

  • VB+access学生管理系统(论文+系统)(2024am).7z

    1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于计算机科学与技术等相关专业,更为适合;

  • 数学计算中的平方表与圆周率π的应用

    内容概要:文档名为《平方表,派表集合.docx》,主要内容是1至1000的平方值以及1至1000与π的乘积结果。每个数字从1开始,逐步增加至1000,对应地计算了平方值和乘以π后的值。所有计算均通过Python脚本完成,并在文档中列出了详细的计算结果。 适合人群:需要进行数学计算或程序验证的学生、教师和研究人员。 使用场景及目标:用于快速查找特定数字的平方值或其与π的乘积,适用于教学、科研及程序测试等场景。 阅读建议:可以直接查阅所需的具体数值,无需从头到尾逐行阅读。建议在使用时配合相应的计算工具,以验证和拓展数据的应用范围。

  • VB+SQL光盘信息管理系统(源代码+系统+答辩PPT)(20244m).7z

    1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于计算机科学与技术等相关专业,更为适合;

  • 白色大气风格的健身私人教练模板下载.zip

    白色大气风格的健身私人教练模板下载.zip

  • 白色简洁风的商务网站模板下载.zip

    白色简洁风的商务网站模板下载.zip

  • 白色大气风格的前端设计案例展示模板.zip

    白色大气风格的前端设计案例展示模板.zip

  • 圣诞树项目中的硬件和MATLAB实现指南

    内容概要:本文介绍了两个有趣的圣诞树项目方向:一是使用Arduino或Raspberry Pi开发可编程的圣诞树灯光控制系统;二是基于MATLAB开发一个圣诞树模拟器。前者通过硬件连接、编写Arduino/Raspberry Pi程序、MATLAB控制程序来实现LED灯带的闪烁;后者则通过创建圣诞树图形、添加动画效果、用户交互功能来实现虚拟的圣诞树效果。 适合人群:具备基本电子工程和编程基础的爱好者和学生。 使用场景及目标:①通过硬件和MATLAB的结合,实现实际的圣诞树灯光控制系统;②通过MATLAB模拟器,实现一个有趣的圣诞树动画展示。 阅读建议:读者可以根据自己的兴趣选择合适的项目方向,并按照步骤进行动手实践,加深对硬件编程和MATLAB编程的理解。

  • 白色扁平风格的温室大棚公司企业网站源码下载.zip

    白色扁平风格的温室大棚公司企业网站源码下载.zip

Global site tag (gtag.js) - Google Analytics