2010-04-15 3 views
4

Ruby 1.8.7에서 신선한 Rails 2.3.5 환경이 4.325 초에로드되지만 Ruby 1.9.1p378 에서는 15.701 초가 걸립니다. 이유는 무엇입니까?Ruby 1.9에서 Rails를로드하는 데 15 초 이상 걸리는 이유는 무엇입니까?

이것은 Ubuntu를 실행하는 32 비트 단일 코어 노트북입니다.

+0

새로운 레일스 응용 프로그램을 만들고 실행하여이 벤치 마크를 직접 시도해 볼 수 있습니다. time 스크립트/runner "puts 'Finished loaded" –

답변

0

대부분 특정 문제가있을 수 있습니다. 나는 동일한 설치 32bit Ubuntu, Rails 2.3.5를 가지고 있으며 ruby1.9.1p378과 ruby1.9.1p243 모두에 어떤 문제도 없다.

어떤 응용 프로그램 서버를 사용합니까? Mongrel, Passanger ... 현재와 다른 시도를하고 시작 속도를 확인할 수 있습니다.

+0

Strange. 실제로 어떤 응용 프로그램 서버를 사용하든 관계없이 스크립트/러너와 동일한 문제가 있습니다. - / –

1

나는 당신과 같은 문제를 겪고 있습니다. 내 컴퓨터에서 SSD를 사용하는 경우 완전히 새로운 Rails 2.3.5 프로젝트의 경우 REs와 1.9.1의 차이는 0.7s와 1.2s입니다. 더 큰 레일 프로젝트에서 차이는 더욱 두드러집니다 : 20 대 10 대입니다.

이것은 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 개발 메일 링리스트에보고하는 좋은 후보자 일 것입니다.

관련 문제