2013-03-21 128 views
2

最近我一直負責處理相當高的Rails api(5k請求高峯時)。在此之前,我已經將大部分編碼工作花費在Java應用程序上,我剛剛接觸Ruby/Rails的新世界。紅寶石1.8.7與紅寶石1.9+性能

在家裏,我一直在使用最新版本的Ruby/Rails來開發一些小應用程序,並感受語言和框架。

工作中的Rails應用程序建立在Ruby 1.8.7和Rails 2.3.16基礎上,對我來說它似乎相當古老,與我在家中使用的當前版本相比,缺少相當多的語法和新功能。我更喜歡ruby和rails的新版本。

我和我的團隊一起提出想要升級到更新/最新版本,但有人告訴我說新版本的Ruby不是'生產'準備好的。可悲的是,由於我對Ruby的經驗不足,我並不是真的有能力對此提出異議。

任何好的文章/指標顯示與更新的Ruby/Rails版本相同或更好的性能?就個人而言,我希望更新的語言/框架迭代具有更好的性能。

回答

4

你的團隊可能是指的卻是這樣的:

我選擇的Linux發行版仍然發佈了Ruby 1.8.7(如果不幸的話,還是1.8.6)。由於他們還沒有更新,我認爲它還不穩定,但我沒有這方面的硬數據。

但是,Linux發行版變化速度非常緩慢,他們很難確保所有軟件都已更新,能夠在較新的語言版本上正常工作。

也就是說,Ruby 1.8是nearing end-of-life相當快。目前,它只接收安全更新,但沒有其他錯誤修復。在2013年7月,它將完全不受支持。這應該是足夠的理由來儘快升級你的應用程序。

至於性能問題:對於大多數工作負載,Ruby 1.9.3被認爲比Ruby 1.8.7更快。 Ruby 2.0被認爲比1.9.3快一點,但不如從1.8.7到1.9的變化。也就是說,一般的表現建議很難。您應該檢查自己,如果這些陳述適用於您的應用程序。

+0

感謝您的回覆,我們正在爲我們的應用服務器運行Fedora 15。我有一個備用盒子,並通過RVM安裝了最新版本,沒有任何問題。然而,即將到來的生命即將結束,快速切換肯定是一個堅實的理由! – scalabilitysolved 2013-03-21 13:14:46

1

這是不是很清楚你在問什麼。你從性能開始,然後切換到「生產就緒」,然後回到性能。既然你問了兩次表演,我會假設你就是這個意思。

Ruby版本對性能沒有影響。有些人聲稱不然,但沒有任何基準證明Ruby版本對性能有任何影響。

不有什麼對性能有很大的影響,你正在使用的Ruby實現和實現的版本,以及正在運行它的環境。例如,JRuby是比MRI,JRuby的速度更快1.7比JRuby 1.6快,在HotSpot上運行的JRuby 1.7比在J9上運行的JRuby 1.7快,在HotSpot 1.7上運行的JRuby 1.7比在HotSpot 1.6上運行的JRuby 1.7快,在HotSpot 1.7上運行的JRuby 1.7與使用C2編譯器相比速度更快使用C1編譯器在HotSpot 1.7上運行JRuby 1.7,依此類推。

+0

嗨喬治,你是正確的,它有點混亂。通過生產就緒,我的意思是性能穩定,適合運行關鍵應用程序。 – scalabilitysolved 2013-03-21 13:25:04

0

根據this,對Ruby 1.8.7的支持將在2013年6月之後完全刪除。

所以最好升級到Ruby 1.9+和Rails 3+。關於如何從Rails 2遷移到Rails 3+ awesome post

對於當前版本的Rails而言,它比較舊,但由於您有Rails 2應用程序,因此本文將幫助您找到Rails 2和Rails 3+應用程序之間的差異。

也會檢出Railscasts有關如何升級到Rails 3的真棒截屏,用Rails 3個Rails 4

+0

乾杯Prathamesh,非常有用! – scalabilitysolved 2013-05-16 20:57:41