论坛首页 编程语言技术论坛

Need for Speed

浏览 8494 次
锁定老帖子 主题:Need for Speed
该帖已经被评为精华帖
作者 正文
   发表时间:2006-11-06  
Erb的渲染一直有人说慢,而c版本的eruby始终没有和Rails整合起来。终于一个东东横空出世了:Erubis, 宣称有Erb3倍的速度并和eruby比肩,而且还是纯ruby的。



安装很傻瓜:
1.安装gem
gem install erubis

2.然后在application.rb里加些整合代码(Erubis是独立于Rails的):
*放到enivronment.rb里也有效果的
require 'erubis/helper/rails'
suffix = 'erubis' 
ActionView::Base.register_template_handler(suffix, Erubis::Helper::RailsTemplate)
#Erubis::Helper::RailsTemplate.engine_class = Erubis::EscapedEruby ## or Erubis::PI::Eruby
#Erubis::Helper::RailsTemplate.default_properties = { :escape=>true, :escapefunc=>'h' }

被注释的是些默认设置除非你想改
3.最后把rhtml后缀改成erubis
4.另外layout里如果用yield的得改成老式的@content_for_layout

我随便找了个稍微复杂点的页面,发现大概提速50%,满意了。

更多细节参见Erubis主页
竟然还有java版本。。。
   发表时间:2006-11-06  
好消息,嘿嘿这下子,代码烂点也没事了。robbin能不能测试下实际使用效果?

不过提升速度,总是有些代价的,估计cpu消耗应该大不少。
0 请登录后投票
   发表时间:2006-11-06  
为什么是加在application.rb里呢?controllers里的那个?感觉会不会有点怪异?一般这类设置是放在environment.rb里吧。
0 请登录后投票
   发表时间:2006-11-06  
等有空的时候测试一下再说。其实现在ruby在服务器上执行效率还可以,瓶颈都在数据库端,优化erb不会有多少改善。
0 请登录后投票
   发表时间:2006-11-06  
qiezi 写道
为什么是加在application.rb里呢?controllers里的那个?感觉会不会有点怪异?一般这类设置是放在environment.rb里吧。

被你这么一说我去看了一下代码,没什么特别插入到controller的东西。我试了下挪到environment.rb里也是一样生效的。作者有三个地方都这么写,我写信去问问吧。
0 请登录后投票
   发表时间:2006-11-06  
robbin 写道
等有空的时候测试一下再说。其实现在ruby在服务器上执行效率还可以,瓶颈都在数据库端,优化erb不会有多少改善。


ror的数据库操作优化的确是一个问题,select一条记录的语句真是超多。
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics