Erubis :快三倍的 erb

看板Ruby作者 (lala)時間18年前 (2006/11/06 12:02), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
內有圖表 http://lightyror.blogspot.com/2006/11/erubis-erb.html 從這個網頁看到的好東西。一個語言一開始速度不佳沒關係,只要一紅起來,一定會有人幫你加快速度的。JAVA 一開始是這樣沒錯,看起來 Ruby on Rails 漸漸要開始脫離速度尚可的名聲了。Webrick 太慢了,所以 Zed Shaw 寫了 Mongrel 。ERB 速度尚可,就有人寫 Erubis ,讓你的 ERB 可以飛快的執行沒有負擔。 Erubis 是用 Ruby 寫的,但是速度居然比用 C 寫的 eruby 還要快。最重要的是,他可以不用改寫現有的 Rails code ,就直接讓 Rails 使用,這就相當的可怕了。下圖是 ERB 跟 Erubis 的比較圖我們可以發現到他的速度幾乎是 ERb 的三倍快。 安裝 至於安裝方式的部份,我們用 gem 來安裝 gem i erubis 1. 你可以在 application.rb 或是 config/enviroments/ 裡面加入 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' } 2. 將你的 .rthml 改成 .erubis 3. 最後要注意,layout 裡面 yield 的部份要改成以前的 @content_for_layout 測試結果 根據我的測試,的確感覺比較快,但是快多少很難說,畢竟 render 所佔的部份不重。相容度的地方,目前一般頁面完全沒有問題, 除了 @content_for_layout 跟修改 template 檔名以外,完全不用改寫 code 。Cache 跟 AJAX 的部份還不確定有沒有問題,如果沒問題,那這個東西一定會大紅起來。 題外話,這個東西給我的感覺,想做成一個 Univeral 的 template engine ,不只支援 Ruby ,PHP,JAVA ,Javascript,C,Scheme 都有支援,不過支援程度還很小兒科啦@@! -- lighty RoR 是一個介紹 lighttpd , SQLite , Ruby and Rails 的 Blog http://lightyror.blogspot.com/ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.218.90.242 ※ 編輯: giive 來自: 61.218.90.242 (11/06 12:08) ※ 編輯: giive 來自: 61.218.90.242 (11/06 12:08)
文章代碼(AID): #15JhFJSL (Ruby)
文章代碼(AID): #15JhFJSL (Ruby)