Výkon aplikácií Java vs C - vysvetľuje Gary

Autor: John Stephens
Dátum Stvorenia: 23 Január 2021
Dátum Aktualizácie: 1 V Júli 2024
Anonim
Výkon aplikácií Java vs C - vysvetľuje Gary - Aplikácie
Výkon aplikácií Java vs C - vysvetľuje Gary - Aplikácie

Obsah


Počnúc najhorším skóre, 32-bitový Android 5.0, ukazuje, že kód Java bežal o 296% pomalšie ako C alebo inými slovami 4-krát pomalšie. Nezabudnite, že absolútna rýchlosť tu nie je dôležitá, ale skôr rozdiel v čase potrebnom na spustenie kódu Java v porovnaní s kódom C na rovnakom zariadení. 32-bitový Android 4.4 KitKat s jeho Dalvik JVM je o niečo rýchlejší pri 237%. Akonáhle je skok na Android 6.0 Marshmallow veci sa začnú dramaticky zlepšovať, so 64-bitovým Android 6.0 prináša najmenší rozdiel medzi Java a C.

Druhým testom je test s prvočíselným testom, pri ktorom sa použije pokus po rozdelení. Ako je uvedené vyššie, tento kód používa 64-bitdlho celé čísla, a preto budú uprednostňovať 64-bitové procesory.


Podľa očakávaní najlepšie výsledky pochádzajú zo systému Android spusteného na 64-bitových procesoroch. Pre 64-bitový Android 6.0 je rozdiel v rýchlosti veľmi malý, iba 3%. Kým pre 64-bitový systém Android 5.0 je to 38%. To dokazuje zlepšenie medzi ART v systéme Android 5.0 a Windows optimalizácia kompilátor používaný firmou ART v systéme Android 6.0. Pretože systém Android 7.0 N je stále vývojovou verziou beta, výsledky sa nezobrazili, spravidla však funguje rovnako dobre ako systém Android 6.0 M, ak nie lepší. Najhoršie výsledky sú pre 32-bitové verzie systému Android a neobvykle 32-bitové verzie Android 6.0 prinášajú najhoršie výsledky skupiny.

Tretí a posledný test vykonáva ťažkú ​​matematickú funkciu pre milión iterácií. Funkcia robí aritmetické celočíselné aj s pohyblivou rádovou čiarkou.


A tu prvýkrát, keď máme výsledok, kde Java skutočne beží rýchlejšie ako C! Existujú dva možné vysvetlenia, ktoré sa týkajú optimalizácie a Optimizingkompilátor od ARM. Najprv Optimizing kompilátor mohol vytvoriť optimálnejší kód pre AArch64 s lepšou alokáciou registra atď., ako kompilátor C v aplikácii Android Studio. Lepší kompilátor vždy znamená lepší výkon. Tiež by mohla existovať cesta cez kód, ktorý OptimizingKompilátor, ktorý bol vypočítaný, môže byť optimalizovaný, pretože nemá žiadny vplyv na konečný výsledok, ale kompilátor C túto optimalizáciu nevidel. Viem, že tento druh optimalizácie bol jedným z hlavných cieľov Optimizingkompilátor v systéme Android 6.0. Pretože táto funkcia je z mojej strany iba čistým vynálezom, existuje spôsob, ako optimalizovať kód, ktorý vynecháva niektoré oddiely, ale nevidel som ho.Ďalším dôvodom je to, že volanie tejto funkcie, dokonca miliónkrát, nespôsobí spustenie zberača odpadu.

Rovnako ako pri teste prvočísel, aj tento test používa 64-bitdlho celé čísla, preto ďalšie najlepšie skóre pochádza zo 64-bitového systému Android 5.0. Potom prichádza 32-bitová verzia Android 6.0, nasledovaná 32-bitovou verziou Android 5.0 a nakoniec 32-bitová verzia Android 4.4.

Zabaliť

Celkovo je C rýchlejšia ako Java, ale prepustením 64-bitového systému Android 6.0 Marshmallow sa medzera medzi týmito dvoma súbormi drasticky zmenšila. V skutočnom svete samozrejme nie je rozhodnutie používať Javu alebo C čiernobiele. Zatiaľ čo C má niektoré výhody, všetky používateľské rozhranie Android, všetky služby Android a všetky API pre Android sú navrhnuté tak, aby sa dali volať z Java. C sa dá skutočne použiť iba vtedy, ak chcete prázdne plátno OpenGL a ak chcete kresliť na toto plátno bez použitia akýchkoľvek rozhraní API pre Android.

Ak však má vaša aplikácia ťažký zdvih, potom by sa tieto časti mohli preniesť na C a možno by ste videli zlepšenie rýchlosti, nie však toľko, ako ste kedy videli.

Novinky flah: Ak na ochranu vojich online účtov používate labé helá, napríklad „123456“ alebo „helo“, exituje veľká šanca, že vá napadnú....

Nie je to tak dávno, čo bola robotika iba kvelými filmami, ale v roku 2019 je to oveľa viac reality. Teraz môžeš Naučte a, ako zotavovať a programovať roboty a ušetríte tým vi...

Zaujímavé Príspevky