2010-05-26 15 views
20

Ho appena ottenuto il mio binario 2.3.8 app in esecuzione su Ruby 1.9.1. Per entrare nella console, avviare il server web, tutto ciò che inizializza le guide, richiede da 3 a 4 volte più a lungo in ruby ​​1.9 rispetto a ruby ​​1.8.7. Sto usando i gestori delle versioni di ruby, così posso passare facilmente da Ruby 1.9 a Ruby 1.8.7. La differenza di velocità si verifica sia nella produzione che nello sviluppo. Voglio usare 1.9 perché deve essere più veloce una volta che tutto è in esecuzione, ma il tempo di avvio è così grave che l'app si sta esaurendo su Heroku alla prima richiesta.Rails inizializza estremamente lento su ruby ​​1.9.1

Qualche idea per cui Ruby 1.9 sarebbe 3 - 4 volte più lento? Non riesco a capirlo per la vita di me.

+0

O capire dove sta spendendo il suo tempo. –

+0

Ho confermato che questo problema esiste con un'app per le nuove rotaie. Quindi non è sicuramente un gioiello o qualcosa di specifico. –

+0

Quando dici 3-4 volte più lentamente, quanto tempo impiega in secondi? Se ruby1.9 impiega 3 secondi a ruby1.8 per 1 secondo, è probabile che tu abbia problemi diversi rispetto a se ruby1.9 impiega 60 secondi e ruby1.8 impiega 20 secondi! – nfm

risposta

6

Provare a utilizzare 1.9.2-head anziché 1.9.1. È lo recommended version per Rails 3, quindi potresti avere più fortuna. Rails 2.3.8 si avvia molto velocemente su 1.9.2-head dai test che ho appena eseguito localmente (anche con Authlogic installato, btw).

Se si utilizza RVM, digitare quanto segue:

rvm install 1.9.2-head 
rvm use 1.9.2-head 

Edit: Ho provato 1.9.1 P378 con la stessa applicazione e il tempo di avvio preso circa 13 secondi rispetto ai 5 secondi su 1.9.2 -capo. 1.9.2-rc1 è dovuto questo mese I believe, quindi questa è una buona notizia :)

+1

non mi ha aiutato – knoopx

0

Probabilmente è perché ruby ​​1.9 utilizza gem_prelude (che offre un percorso di carico di grandi dimensioni) anziché normali rubygems. Checkout la lunghezza di $: - che viene cercata una volta per ogni bisogno, causando il tempo supplementare

Se si vuole che il vecchio modo, (l'aggiornamento alla versione più recente di RubyGems e) eseguire rubino --disable-gemme

Se sei su Windows, dai un'occhiata alla mia gemma più veloce.

http://github.com/rdp/faster_require

Anche se suppongo, ora che me lo dici, potrebbe aiutare a 1.9 Linux. Può essere.

GL! -rp

Problemi correlati