这只是个人测试,也是个ruby初学者的测试,如果因优化不周而造成重大误差还请各位能多多指教。
-
Rails vs Rack vs Merb:
Rails 性能比Merb差不少,但文档,插件丰富,加上Rack可以高速处理某些需求。又闻Merb要并入Rails,高速处理又有Metal,真是前景无限。
Rack 一个字快,爽。
Merb 看上去很美,只是发觉文档太少。不太试合初学者,比如我想让ActiveRecord支持Enum类型,Merb似乎需要自已操刀,而Rails可以拿来就用
速度上 静态>Rack>Merb>Rails
速度横向比较
|
静态 |
Rack |
Merb |
Rails |
速度 |
3130 |
1192 |
305 |
180 |
(单位:reqs/sec)
-
Cache:
page缓存很方便,而且直接生成html,很容易实现全站静化,只是如果每个文件id都放于同一目录下,很难想像几万文件挤在一个目录下。cache还有待学习。似乎fragment能解决这个问题。
对于很简单的helloworld,action缓存不快反慢。reqs由180下降到150。
-
服务器:
Fastcgi比mongrel快不少。mongrel更易使用。我现在是 development用mongrel,production用fastcgi
Nginx和lighttpd差不多快,
apache2的mod_rails性能记得也不错,具体数值忘了,apache2太大型,内存占得多,配置灵活性没Nginx好,且在性能上和Nginx与Lighttpd有不小差距,所以不再予考虑。
-
我个人最终取向:
Nginx+Fastcgi+Rails+Rack 作为我的Rails平台。
另外我的blog是
http://www.jiangmiao.org/blog
最近在学ruby中,ruby现在给我最大的感触就是灵活,方便。
2009-1-21补充:
- Fastcgi
经过实践,发现在fastcgi上lighttpd略胜一筹,最佳的性能稳定Rails平台还是为公认的 Lighttpd+Fastcgi. 但不可否认nginx为非常优秀的服务器,特别是他的配置方式,我尤为中意。
- Cache
提到的Fragment Cache与Page Cache为2个不同等级的cache,
Page提供全文cache,在controller中以caches_page :actionName形式。
Fragment为区域cache,在views中以 <% cache do %> xxx <%end%> 形式。
关于Fragment Cache存储方式如文档中提到的
#内存cache,也是默认的cache
ActionController::Base.cache_store = :memory_store
#以文件形式保存
ActionController::Base.cache_store = :file_store, "/path/to/cache/directory"
ActionController::Base.cache_store = :drb_store, "druby://localhost:9192"
ActionController::Base.cache_store = :mem_cache_store, "localhost"
ActionController::Base.cache_store = MyOwnStore.new("parameter") #重写自已的Store
在environment可以添加语句 config.cache_store = xxx 进行设置
网上很多文章因使用的rails版本已过时,仍以 fragment_cache_store= 作为教程存在,使人走了不少弯路。所以在rails升级或学习的过程中,阅读changelog是很有必要的。
关于自定义Store网上教程似乎很少,但因其并不复杂,又因rails源码公开,大家可参考MemoryStore的源文件 memorystore_cache.rb
如 class MyOwnStore < ActiveSupport::Cache::Store 并重写write,read等方法,则可以轻松制定Fragment的缓存方式。
关于更多cache可以参考http://www.railsenvy.com/2007/2/28/rails-caching-tutorial
但注意该rails的版本也以过时,因为其log显示还是以Completed in 0.18700 (5 reqs/sec) | Rendering: 0.10900 (58%) | DB: 0.00000 (0%)形式。
分享到:
- 2008-12-31 07:40
- 浏览 1824
- 评论(4)
- 论坛回复 / 浏览 (4 / 3458)
- 查看更多
相关推荐
Ruby性能测试 Ruby性能测试 Ruby性能测试 Ruby性能测试 Ruby性能测试 Ruby性能测试 Ruby性能测试 Ruby性能测试 Ruby性能测试 Ruby性能测试
ruby on rails社区网站开发源码
ruby开发文档ruby开发文档ruby开发文档ruby开发文档
如果已经了解怎么实现页面性能测试,那么本文将带您体会如何用Ruby来实现。为什么选择Ruby来实现,而不是用QTP呢?原因是Ruby有着QTP所无法比拟的优点。
ruby on rose开发文档-开发 基本包含所有类和函数方法 有助于ruby开发
Ruby开发流程涉及多个关键步骤,从环境搭建到项目部署,下面是一个大致的流程概述: Ruby开发环境搭建:首先,需要在计算机上安装Ruby开发环境。推荐使用macOS或各种发行版本的Linux作为运行环境,尽管Windows下也...
Ruby On Rails 框架自它提出之日起就受到广泛关注,在“不要重复自己”,“约定优于配置”等思想的指导下,Rails 带给 Web 开发者的是极高的开发效率。 ActiveRecord 的灵活让你再也不用配置繁琐的 Hibernate 即可...
rubyPHP的高性能体现在以下几个方面: 1.页面缓存。页面缓存指之前加载过的页面以文件方式缓存在服务器中,在一段时间内再次加载相同页面时无需重新执行页面逻辑直接加载静态页面。rubyPHP的页面缓存是自动进行的,...
ruby测试代码6
ruby测试代码1
Howitzer - 基于ruby的验收测试框架
ruby水平测试 ruby水平测试 ruby水平测试 ruby水平测试 ruby水平测试
关于Ruby开发环境的配置的一个文档,帮助大家搭建ruby开发、rails开发的基础环境。
这是NetBeans的最后一个专门针对window环境的集成开发工具,此后的版本都是以ruby插件的方式支持ruby开发的,相对于ruby新手不容易配置好编程环境。 因受上次文件大小限制分两个压缩包上传。 如需java的jdk,我的...
Falcon:用于Ruby的高性能web服务器,支持HTTP/2和HTTPS
这是NetBeans的最后一个专门针对window环境的集成开发工具,此后的版本都是以ruby插件的方式支持ruby开发的,相对于ruby新手不容易配置好编程环境。 因受上次文件大小限制分两个压缩包上传。 如需java的jdk,我的...
ruby测试代码7
Eclipse搭建Ruby开发环境的搭建步骤
Ruby on Rails Web开发学习实录 内容简介: 在目前的主流web开发技术中,基于ruby语言的rails框架是做网站开发速度最快的工具。它可以达到j2ee框架开发速度的5~10倍,并且代码量也非常少。另外由于代码量的大幅度...