lunedì 4 luglio 2011

Rhino sta per arrivare molto più velocemente

Inviato da Rick Hightower

Oliver Charles Nutter , JRuby di fama, ha recentemente iniziato ad assistere il progetto Rhino (implementazione Java di JavaScript) per accelerare la fase di esecuzione Rhino JavaScript per competere con artisti del calibro di V8 . Rhino, anche se un implementazione solido, non ha le prestazioni di runtime JavaScript altri. Nutter sente Rhino può fare un po 'di terreno perduto utilizzando Invokedynamic ottimizzazioni e altri. Questo potrebbe mettere Rhino alla pari con V8 o almeno più competitivi.

InfoQ raggiunto Nutter per scoprire quello che lui e la squadra Rhino sono all'altezza. Nutter piani di impiegare Invokedynamic la JVM di filo meccanismo di invio di Rhino direttamente nel compilatore ottimizzante della JVM. Questo dovrebbe ridurre o eliminare le spese generali per la ricerca metodo in fase di chiamata, l'argomento-boxing in testa, e JavaScript a JavaScript chiamate e chiamate JavaScript per Java di inline e ottimizzando nel suo complesso. Nutter ha spiegato che un vantaggio collaterale di utilizzare invokedynamic è che la logica invocazione di Rhino sarà molto più semplice per il caso di Java 6.

InfoQ ha continuato a chiedere Nutter quanto sia importante sentiva che era per la JVM di avere una più rapida attuazione JavaScript poiché JavaScript è sembrato sempre più importante in generale. Nutter hanno risposto:

Personalmente ritengo molto l'hype su JavaScript è esagerata. E 'un buon linguaggio per il browser in primo luogo perché tutti i browser supportano non è forse perché la lingua è significativamente migliore rispetto ad altre opzioni.

E sul lato server, è diventato popolare perché runtime ora eseguire bene e ci sono un sacco di librerie scritte per il lato client che si applicano al server. ...

Tuttavia, data la recente popolarità di JavaScript per end-to-end, sembra del tutto naturale per la versione JVM per avere un aggiornamento. E 'anche una specie di imbarazzo che probabilmente il più veloce runtime gestito intorno - la JVM - non riesce a eseguire JavaScript più veloce i concorrenti attuali. Penso che sia tempo per questo di cambiare.

Infine abbiamo chiesto Nutter come Rhino rispetto alle sfide poste da JRuby da un punto di vista dell'attuazione. Nutter hanno risposto:

Rhino può effettivamente essere un bersaglio più facile in molti modi, in quanto non hanno alcune delle caratteristiche di Ruby selvagge. Tuttavia, presenta una sfida interessante in quanto il suo modello di oggetti basati su prototipi non lascia posizione chiara per memorizzare nella cache tabella metodo come è il caso di Ruby. Tecniche usate dai V8 e John Rose "DavinciMonkey" (un primo tentativo di invokedynamic a base di Rhino) - come ad esempio la generazione di classi di sintesi come prototipi sono modificati - dovrebbe rendere più facile trattare con struttura di tipo Rhino più fluido.

C'è un grande divario di prestazioni tra il motore JavaScript V8 impiegato da Chrome e Rhino. Nutter ha commentato che le caratteristiche JVM come invokedynamic potrebbe chiudere il gap, ma Rhino ha bisogno di essere aggiornato con le prestazioni in mente. Anche se Rhino è una implementazione grande ci sono tecniche di impiegare per velocizzare le cose, con o senza nuova funzione JVM come invokedynamic.

E 'troppo presto per dire se Rhino può competere con le macchine virtuali scritto specificamente con JavaScript in mente, ma Rhino è sicuro di ottenere un aumento di velocità.

Corso Java - Corsi Java - Corsi programmazione Java

Corso programmazione Android - Certificazione Android


Nessun commento:

Posta un commento

Nota. Solo i membri di questo blog possono postare un commento.