Ho un'applicazione Rails 3.2.2 che sto cercando di eseguire utilizzando JRuby 1.6.7 (modalità 1.9.2).JRuby Performance
Ho un app campione in esecuzione in risonanza magnetica ruby 1.9.3 e una richiesta tipica sta tornando in ~ 40ms: Completato 200 OK in 36ms (Viste: 27.5ms | ActiveRecord: 8.2ms)
Sotto JRuby utilizzando la stessa richiesta è ovunque da 3 a 20 volte più lento a seconda della pagina. Per la stessa operazione di cui sopra ci vogliono ~ 180 ms: Completato 200 OK a 180 ms (Visualizzazioni: 153.0 ms | ActiveRecord: 24.0 ms)
Si tratta di una differenza di prestazioni normale? Ho letto che JRuby è approssimativamente uguale alla velocità con la risonanza magnetica. I risultati rimangono sul mio Mac e su un server Windows (dove sfortunatamente dovrà essere eseguito). Imballare con Warbler che corre sotto Tomcat è altrettanto lento.
I tempi sopra indicati provengono da un'app di base creata per testare JRuby. Nell'app più complessa i tempi sono ancora più distanti. Su quell'app viene eseguito più codice ruby su alcune pagine. Sembra che più la pagina è dipendente dal rubino, maggiore è la differenza di prestazioni che sto osservando. Non ho effettuato alcuna messa a punto di JRuby, dal momento che non so da dove iniziare.
Quindi le mie domande sono: è normale? Cosa posso fare per sintonizzare JRuby?
L'esecuzione in modalità 'produzione', rispetto alla modalità di sviluppo comporta una risposta a volte 5-6 volte più rapida. Almeno quello era nel mio caso. Grazie per averlo notato – Aleks