2010-10-23 9 views
7

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?

+1

JRuby sta prendendo il stesso approccio, compilando il bytecode da Ruby a Java. – Thilo

risposta

4

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/

1

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.

+1

I "nuovi" risultati sono del 2007? : -/ –

+1

Devo ammettere che lascia margini di miglioramento. – SingleNegationElimination