Ho appena visto che c'è un compilatore Ruby to Parrot
chiamato Cardinal
, che può creare codice per l'esecuzione su Parrot
, che è una VM in grado di eseguire codice byte. In che modo le prestazioni di Ruby o di qualsiasi linguaggio vengono compilate ed eseguite lì perché, ad esempio, Ruby probabilmente non ha codice byte precompilato. Può essere più veloce in esecuzione su Parrot
? Probabilmente Python andrà meglio così com'è perché ha .pyc.Ruby o altre lingue funzioneranno più velocemente con Parrot?
risposta
Parrot
lo sviluppo non si è ancora concentrato sull'ottimizzazione. La tabella di marcia è sempre elencata alla versione 3 o 4 (Parrot
è attualmente alla versione 2.9).
Un ramo grande refactoring che comprende strappa il JIT e la sua sostituzione con uno nuovo sta accadendo (rif: Lorito & JITRewrite).
I frutti di questo dovrebbero iniziare a mostrare come parte di Parrot 3.0 che penso sia dovuto la prossima primavera.
Aggiornamento
Un probabile roadmap è stato inviato da uno sviluppatore Parrot nella sua blog. Ecco un riassunto di quello che pensa i prossimi 3 anni forse:
- 3,0 - Nuova Garbage Collector
- 3.3 - Lorito prototipo
- 4.0 - Nuovo oggetto metamodel
- 5.0 - Nuova JIT
- 6.0 - Nuovo sistema di concorrenza
/I3az/
Modifica: stavo guardando i risultati precedenti quando newer ones are available. A parte i benchmark più recenti, che sono ancora piuttosto vecchi, il pappagallo batte il vuel vanilla su alcuni test, ma è più lento su altri. Alcuni test che non è nemmeno in grado di completare.
yarv è il re della velocità a mani basse per prestazioni rubino.
I "nuovi" risultati sono del 2007? : -/ –
Devo ammettere che lascia margini di miglioramento. – SingleNegationElimination
JRuby sta prendendo il stesso approccio, compilando il bytecode da Ruby a Java. – Thilo