Prestazioni delle app Java vs C - spiega Gary

Autore: John Stephens
Data Della Creazione: 23 Gennaio 2021
Data Di Aggiornamento: 1 Luglio 2024
Anonim
Java vs C app performance – Gary explains
Video: Java vs C app performance – Gary explains

Contenuto


A partire dal punteggio peggiore, Android 5.0 a 32 bit, mostra che il codice Java ha funzionato più lentamente del 296% rispetto a C, ovvero 4 volte più lentamente. Ancora una volta, ricorda che la velocità assoluta non è importante qui, ma piuttosto la differenza nel tempo impiegato per eseguire il codice Java rispetto al codice C, sullo stesso dispositivo. Android 4.4 KitKat a 32 bit con la sua Dalvik JVM è un po 'più veloce al 237%. Una volta fatto il salto su Android 6.0 Marshmallow le cose iniziano a migliorare notevolmente, con Android 6.0 a 64 bit che produce la più piccola differenza tra Java e C.

Il secondo test è il test del numero primo, usando il processo per divisione. Come notato sopra, questo codice utilizza 64 bitlungo numeri interi e favorirà quindi i processori a 64 bit.

Come previsto, i migliori risultati provengono da Android in esecuzione su processori a 64 bit. Per Android 6.0 a 64 bit la differenza di velocità è molto piccola, solo del 3%. Mentre per Android 5.0 a 64 bit è del 38%. Ciò dimostra i miglioramenti tra ART su Android 5.0 e Ottimizzazione compilatore utilizzato da ART in Android 6.0. Dato che Android 7.0 N è ancora una beta di sviluppo, non ho mostrato i risultati, tuttavia in genere funziona come Android 6.0 M, se non meglio. I risultati peggiori sono per le versioni a 32 bit di Android e stranamente Android 6.0 a 32 bit produce i risultati peggiori del gruppo.


Il terzo e ultimo test esegue una pesante funzione matematica per un milione di iterazioni. La funzione esegue l'aritmetica intera e l'aritmetica in virgola mobile.

E qui per la prima volta abbiamo un risultato in cui Java funziona effettivamente più velocemente di C! Ci sono due possibili spiegazioni per questo ed entrambi hanno a che fare con l'ottimizzazione e la Optimizingcompilatore da ARM. Innanzitutto, la Optimizing il compilatore avrebbe potuto produrre un codice più ottimale per AArch64, con una migliore allocazione dei registri ecc., rispetto al compilatore C in Android Studio. Un compilatore migliore significa sempre prestazioni migliori. Inoltre potrebbe esserci un percorso attraverso il codice che Optimizingil compilatore calcolato può essere ottimizzato perché non ha alcuna influenza sul risultato finale, ma il compilatore C non ha individuato questa ottimizzazione. So che questo tipo di ottimizzazione è stato uno dei grandi obiettivi di Optimizingcompilatore in Android 6.0. Poiché la funzione è solo una pura invenzione da parte mia, potrebbe esserci un modo per ottimizzare il codice che omette alcune sezioni, ma non l'ho notato.L'altro motivo è che la chiamata a questa funzione, anche un milione di volte, non causa l'esecuzione del Garbage Collector.


Come per il test dei numeri primi, questo test utilizza 64 bitlungo numeri interi, motivo per cui il prossimo miglior punteggio viene da Android 5.0 a 64 bit. Quindi arriva Android 6.0 a 32 bit, seguito da Android 5.0 a 32 bit e infine Android 4.4 a 32 bit.

Incartare

Nel complesso C è più veloce di Java, tuttavia il divario tra i due è stato drasticamente ridotto con il rilascio di Android 6.0 Marshmallow a 64 bit. Ovviamente nel mondo reale, la decisione di utilizzare Java o C non è in bianco e nero. Mentre C presenta alcuni vantaggi, tutta l'interfaccia utente Android, tutti i servizi Android e tutte le API Android sono progettate per essere chiamate da Java. C può davvero essere usato solo quando vuoi un canvas OpenGL vuoto e vuoi disegnare su quel canvas senza usare alcuna API Android.

Tuttavia, se la tua app deve svolgere un lavoro pesante, le parti potrebbero essere trasferite su C e potresti vedere un miglioramento della velocità, tuttavia non tanto quanto una volta avresti potuto vedere.

Hai zero eperienza di codifica? e lo fai e vuoi imparare, iniziare con Python è il modo chiaro per iniziare il tuo viaggio di programmazione....

Le notre eigenze di ricarica ono in aumento. Man mano che accumuli più dipoitivi con diveri metodi di ricarica, ciò di cui hai veramente biogno è un caricatore per il lotto. e puoi ripa...

La Nostra Scelta