Android + JIT = Telefono 1.74x più veloce

27 Gennaio 201032 commenti
Proprio ieri ho riportato un articolo interessante su come siano riusciti ad overclocckare droid ad 1.1 GHz ( ora 1.3 :) ). Nonostante questo overclock ho notato che alcuni utenti con il nexus one avevano risultati di benchmark ben migliori di quelli riportati dal droid overclockato e cosi mi sono informato. Cyanogen sembra aver incluso una feature nel proprio kernel chiamata  Dalvik JIT Compiler. Informandomi su questa feature ho scoperto che JIT è un acronimo che sta ad significare Just In Time  ( che tradotto malamente significa fatto al momento ). Svelati gli acronimi vi voglio spiegare a cosa serva questa nuova feature ( che è inclusa nei sorgenti android ) e come può essere utile a noi.

[ad#ad-androidiani-1]

Questo nuovo sistema permette di velocizzare la rom android di 1.74x rendendolo quasi il doppio più veloce di come lo si conosca ( senza alcun overclock ). Capite bene che cellulari come milestone, nexus, acer liquid perciò non sono arrivati al loro massimo di prestazioni.

Una semplice modifica al software farà sembrare il vostro terminale rinato.

Ma quindi, come facciamo a modificare le nostre rom per avere questa feature ?

Per avere La Dalvik JIT Compiler bisogna ricompilare il kernel inserendo nella buildspec.mk la stringa WITH_JIT := true . Per quello che vale è ovvio che non tutti possano fare quest’operazione e che quindi bisognerà aspettare qualcuno in grado di ricompilare il kernel e pacchettizare un immagine di boot.

Posso provare anche sul mio HTC Dream,Magic,Galaxy,….  ?

Non ne sono molto sicuro a riguardo ma credo di aver capito che quei terminali con qualcomm non riescano ad avere improvements eccellenti tramite questo nuovo kernel. ( Controllate meglio nelle fonti dell’articolo ).

Beh. non mi resta che augurarvi una buona giornata e Stay androided :)

[Fonti 1, 2]

32 risposte a “Android + JIT = Telefono 1.74x più veloce”

  1. monossido ha detto:

    Interessante stasera compilo :)
    Nessun’altro oltre cyanogen su nexus ci ha provato?
    Immagino che ci sia già anche nel git di cyanogen

  2. monossido ha detto:

    Non credo comunque che sia una feature del kernel dato che si parla della dalvik…

  3. monossido ha detto:

    Interessante stasera compilo :)
    Nessun’altro oltre cyanogen su nexus ci ha provato?
    Immagino che ci sia già anche nel git di cyanogen

  4. monossido ha detto:

    Non credo comunque che sia una feature del kernel dato che si parla della dalvik…

  5. Andrea ha detto:

    Yes … Ho detto una cappellata :) Ho fatto un mix tra overclock tramite kernel e questa cosa :P

  6. Andrea ha detto:

    Yes … Ho detto una cappellata :) Ho fatto un mix tra overclock tramite kernel e questa cosa :P

  7. Fatal1ty ha detto:

    Buono a sapersi,è davvero un peccato che non abbia alcun effetto su terminali più datati quali magic e dream!avrebbe dato loro una nuova vita!nexus, Liquid e droid sono gia veloci di loro!

  8. Fatal1ty ha detto:

    Buono a sapersi,è davvero un peccato che non abbia alcun effetto su terminali più datati quali magic e dream!avrebbe dato loro una nuova vita!nexus, Liquid e droid sono gia veloci di loro!

  9. Veone ha detto:

    Che bella notizia… non vedo l’ora di provarla!

  10. Veone ha detto:

    Che bella notizia… non vedo l’ora di provarla!

  11. Andrea ha detto:

    fatal1ty è da testare ma mi pare di aver letto in giro che non resuscitano molto i terminali datati.. Prova e facci sapere :P

  12. Andrea ha detto:

    fatal1ty è da testare ma mi pare di aver letto in giro che non resuscitano molto i terminali datati.. Prova e facci sapere :P

  13. nk02 ha detto:

    jit sta in dalvikvm.so, è da quando arrivò lo primo snapshot di eclair 2.0 che c’è, infatti (un paio di?) mesi fa la provai sul mio magic 32b.
    molto piu veloce ma inutilizzabile causa poca ram. su 32a mi pare l’avesse provata eug89 e non ricordo i risultati loool.

    in ogni caso da 2.1 la jit non dovrebbe più servire attivarla dal buildspec.mk prima di compilare, anzi “dovrebbe” essere di default, basta solo attivarla nel build.prop (dico dovrebbe perchè non ho fatto prove)

  14. nk02 ha detto:

    jit sta in dalvikvm.so, è da quando arrivò lo primo snapshot di eclair 2.0 che c’è, infatti (un paio di?) mesi fa la provai sul mio magic 32b.
    molto piu veloce ma inutilizzabile causa poca ram. su 32a mi pare l’avesse provata eug89 e non ricordo i risultati loool.

    in ogni caso da 2.1 la jit non dovrebbe più servire attivarla dal buildspec.mk prima di compilare, anzi “dovrebbe” essere di default, basta solo attivarla nel build.prop (dico dovrebbe perchè non ho fatto prove)

  15. monossido ha detto:

    grazie nk02 come al solito sei meglio informato e mi risparmi ore di compilazione per (non)novità ;)

  16. monossido ha detto:

    grazie nk02 come al solito sei meglio informato e mi risparmi ore di compilazione per (non)novità ;)

  17. Andrea ha detto:

    Veramente deve essere abilitato ed è una novità perchè nessuno l’ha ancora usata quella feature.. Dato che l’ha messa su solamente cyanogen..

    Che non funzionni bene su magic e dream.. Beh c’era scritto pure nel post

  18. Andrea ha detto:

    Veramente deve essere abilitato ed è una novità perchè nessuno l’ha ancora usata quella feature.. Dato che l’ha messa su solamente cyanogen..

    Che non funzionni bene su magic e dream.. Beh c’era scritto pure nel post

  19. venomous ha detto:

    Il punto è che le le altra JVM hanno un jit compiler, ad esempio quella di sun, ma ovviamente Google ha deciso di creare la sua JVM Dalvik per motivi di cui non staremo qui a discutere. Nei source di Dalvik che credo proma fossero chiusi, se non erro, aveva già fatto capolino il compilatore JIT, il problema è che affinchè funzioni correttamente un JIT compiler ha bisogno di più RAM e CPU (uscito il nexus one si parlò del jit per dalvik). E compunque anche se le applicazioni sono più veloci, al lancio le applicazioni richiedono più tempo per partire. Questo in base alle mie conoscenze.

  20. venomous ha detto:

    Il punto è che le le altra JVM hanno un jit compiler, ad esempio quella di sun, ma ovviamente Google ha deciso di creare la sua JVM Dalvik per motivi di cui non staremo qui a discutere. Nei source di Dalvik che credo proma fossero chiusi, se non erro, aveva già fatto capolino il compilatore JIT, il problema è che affinchè funzioni correttamente un JIT compiler ha bisogno di più RAM e CPU (uscito il nexus one si parlò del jit per dalvik). E compunque anche se le applicazioni sono più veloci, al lancio le applicazioni richiedono più tempo per partire. Questo in base alle mie conoscenze.

  21. Azatoth ha detto:

    Confermo la versione di venomous…
    il nome corretto in realtà è JIT-Compiler e è il compilatore just in time: esegue una compilazione al volo quando richiedi l’applicazione e passa dal linguaggio intermedio java (bytecode) a binari veri per l’architettura in cui il JIT-Compiler è installato.

    Quindi è evidente che in prima battuta l’applicazione risulta più lenta a caricare ma poi è veloce: più lenta perchè all’avvio passa da bytecode a binario e poi veloce perchè è binario e non bytecode ;)

  22. Azatoth ha detto:

    Confermo la versione di venomous…
    il nome corretto in realtà è JIT-Compiler e è il compilatore just in time: esegue una compilazione al volo quando richiedi l’applicazione e passa dal linguaggio intermedio java (bytecode) a binari veri per l’architettura in cui il JIT-Compiler è installato.

    Quindi è evidente che in prima battuta l’applicazione risulta più lenta a caricare ma poi è veloce: più lenta perchè all’avvio passa da bytecode a binario e poi veloce perchè è binario e non bytecode ;)

  23. Azatoth ha detto:

    Aggiungo per completezza come la Java VM di Sun utilizza il JIT:

    http://java.sun.com/developer/onlineTraining/Programming/JDCBook/perf2.html#jit

    Non è da escludere che la Dalvik VM possa fare in un altro modo o comunque possano essere utilizzate diverse modalità di richiamo

  24. Azatoth ha detto:

    Aggiungo per completezza come la Java VM di Sun utilizza il JIT:

    http://java.sun.com/developer/onlineTraining/Programming/JDCBook/perf2.html#jit

    Non è da escludere che la Dalvik VM possa fare in un altro modo o comunque possano essere utilizzate diverse modalità di richiamo

  25. Manfriz ha detto:

    ma una recovery modificata per il milestone? così da potere installare e flashare quello che si vuole?

  26. Manfriz ha detto:

    ma una recovery modificata per il milestone? così da potere installare e flashare quello che si vuole?

  27. Maxdal89 ha detto:

    ciao, io sono un po’ inesperto, ma volevo provare a ricompilare il kernel…qualcuno mi aiuta, o mi da’ una guida? grazie

  28. Maxdal89 ha detto:

    ciao, io sono un po’ inesperto, ma volevo provare a ricompilare il kernel…qualcuno mi aiuta, o mi da’ una guida? grazie

  29. nk02 ha detto:

    ottima la spiegazione di Azatoth e venomous.

    sta di fatto che non è una novità, c’era da 2mesi e non veniva usata proprio perchè non c’erano terminali in cui portasse vantaggi

  30. nk02 ha detto:

    ottima la spiegazione di Azatoth e venomous.

    sta di fatto che non è una novità, c’era da 2mesi e non veniva usata proprio perchè non c’erano terminali in cui portasse vantaggi

  31. Veone ha detto:

    Ma quindi in definitiva vale la pena abilitarlo sul Milestone? Sempra che si possa…

  32. Veone ha detto:

    Ma quindi in definitiva vale la pena abilitarlo sul Milestone? Sempra che si possa…

Social Media Auto Publish Powered By : XYZScripts.com