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.

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]

Loading...
  • monossido

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

  • monossido

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

  • monossido

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

  • monossido

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

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

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

  • Fatal1ty

    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!

  • Fatal1ty

    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!

  • Veone

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

  • Veone

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

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

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

  • nk02

    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)

  • nk02

    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)

  • monossido

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

  • monossido

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

  • 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

  • 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

  • venomous

    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.

  • venomous

    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.

  • Azatoth

    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 ;)

  • Azatoth

    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 ;)

  • Azatoth

    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

  • Azatoth

    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

  • Manfriz

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

  • Manfriz

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

  • Maxdal89

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

  • Maxdal89

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

  • nk02

    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

  • nk02

    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

  • Veone

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

  • Veone

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