2010-04-15 81 views
4

在Ruby 1.8.7上,新鮮的Rails 2.3.5環境在4.325秒內加載,但在Ruby 1.9.1p378 上需要15.701s - 有沒有人有任何想法?爲什麼Rails需要15+秒才能加載Ruby 1.9?

這是在運行Ubuntu的32位單核筆記本電腦上。

+0

您可以通過創建一個新的rails應用程序並運行來嘗試這個基準:time script/runner「puts」已完成加載「」 – 2010-04-15 17:03:17

回答

0

很可能你有一些具體問題。我有相同的設置32位Ubuntu,Rails 2.3.5,我沒有任何問題與ruby1.9.1p378都沒有與ruby1.9.1p243。

您使用哪個應用程序服務器? Mongrel,Passanger ...你可以嘗試一個不同於當前的並檢查其啓動速度。

+0

奇怪。實際上,我使用的應用程序服務器並不重要,我有與腳本/ runner相同的問題: - / – 2010-04-17 19:59:59

1

我看到了和你一樣的問題。在配備SSD的機器上,對於一個全新的Rails 2.3.5項目,它是0.7s vs 1.2s,REE vs. 1.9.1。在一個更大的鐵路項目中,差異更加明顯:20s和10s之間。

這讓我懷疑這是一個I/O相關的問題。與修補要求和負載運行:

module Kernel 
    alias :load_without_tracing :load 
    alias :require_without_tracing :require 

    def load(filename, wrap=false) 
    puts "loading #{filename}" 
    load_without_tracing(filename, wrap) 
    end 
    def require(string) 
    puts "requiring #{string}" 
    require_without_tracing(string) 
    end 
end 

說,這是加載代碼很多。這可能是我們所看到的。如果1.9.1對文本文件的加載情況表示理解(字符串中的編碼可能是候選),這可以解釋我們所看到的加載時間的差異。

爲什麼它會是你的機器上的3以及我的< 2的因素,然而我只能猜測。也許像這樣的場景是向MRI開發郵件列表報告的好候選者。

相關問題