„Java vs C“ programos našumas - paaiškina Gary

Autorius: John Stephens
Kūrybos Data: 23 Sausio Mėn 2021
Atnaujinimo Data: 1 Liepos Mėn 2024
Anonim
CS50 2015 - Week 12
Video.: CS50 2015 - Week 12

Turinys


Pradedant blogiausiu rezultatu, 32 bitų „Android 5.0“, matyti, kad „Java“ kodas veikė 296% lėčiau nei C arba, kitaip tariant, 4 kartus lėčiau. Vėlgi, atminkite, kad absoliutus greitis čia nėra svarbus, o greičiau skirtumas, kiek reikia „Java“ kodo paleisti, palyginti su C kodu, tame pačiame įrenginyje. 32 bitų „Android 4.4 KitKat“ su savo „Dalvik JVM“ yra šiek tiek spartesnis - 237 proc. Kai tik pereisite prie „Android 6.0“, „Marshmallow“ viskas pradės ryškiai pagerėti, o 64 bitų „Android 6.0“ sukuria mažiausią skirtumą tarp „Java“ ir „C“.

Antrasis testas yra pirminio skaičiaus testas, naudojant bandymą pagal padalijimą. Kaip minėta aukščiau, šis kodas naudoja 64 bitųilgai sveikieji skaičiai, todėl bus palankūs 64 bitų procesoriams.

Kaip ir tikėtasi, geriausi rezultatai pasiekiami naudojant „Android“, veikiančią 64 bitų procesoriuose. 64 bitų „Android 6.0“ greičio skirtumas yra labai mažas, tik 3%. 64 bitų „Android 5.0“ yra 38 proc. Tai rodo patobulinimus tarp ART versijos „Android 5.0“ ir Optimizavimas kompiliatorius, kurį „ART“ naudoja „Android 6.0“. Kadangi „Android 7.0 N“ vis dar yra tobulintina beta versija, rezultatų nerodžiau, tačiau ji dažniausiai veikia taip pat, kaip ir „Android 6.0 M“, jei ne geriau. Blogesni rezultatai yra 32 bitų „Android“ versijose, o keista, kad 32 bitų „Android 6.0“ duoda blogiausius grupės rezultatus.


Trečiasis ir paskutinis testas atlieka sunkią matematinę funkciją milijonui iteracijų. Funkcija atlieka ne tik skaičių, bet ir slankiojo kablelio aritmetinį.

Ir čia pirmą kartą mes turime rezultatą, kai Java iš tikrųjų veikia greičiau nei C! Yra du galimi to paaiškinimai, abu susiję su optimizavimu ir Optimizavimassudarytojas iš ARM. Pirma, Optimizavimas kompiliatorius galėjo sukurti optimalesnį „AArch64“ kodą su geresniu registrų paskirstymu ir tt, nei „C“ kompiliatorius „Android Studio“. Geresnis kompiliatorius visada reiškia geresnį našumą. Taip pat gali būti kelias per kodą, kurį OptimizavimasKompiliatoriaus apskaičiavimą galima optimizuoti, nes jis neturi įtakos galutiniam rezultatui, tačiau C kompiliatorius nepastebėjo šio optimizavimo. Aš žinau, kad toks optimizavimas buvo vienas didžiausių O dėmesio centreptimizavimaskompiliatorius „Android 6.0“. Kadangi ši funkcija yra tik grynas mano išradimas, gali būti būdas optimizuoti kodą, kuriame trūksta kai kurių skyrių, bet aš to nepastebėjau.Kita priežastis yra ta, kad paskambinus šiai funkcijai, net milijoną kartų, šiukšlių surinkėjas nesuveikia.


Kaip ir „PRIMES“ testas, šis testas naudoja 64 bitųilgai sveikieji skaičiai, todėl kitas geriausias rezultatas gaunamas iš 64 bitų „Android 5.0“. Tada ateina 32 bitų „Android 6.0“, po jų eina 32 bitų „Android 5.0“ ir galiausiai 32 bitų „Android 4.4“.

Apvyniokite

Apskritai C yra spartesnis nei „Java“, tačiau atotrūkis tarp jų buvo drastiškai sumažintas išleidus 64 bitų „Android 6.0 Marshmallow“. Žinoma, realiame pasaulyje sprendimas naudoti „Java“ ar „C“ nėra juodai baltas. Nors C turi tam tikrų pranašumų, visos „Android“ vartotojo sąsajos, visos „Android“ paslaugos ir visos „Android“ API yra suprojektuotos taip, kad būtų iškviečiamos iš „Java“. „C“ iš tikrųjų gali būti naudojama tik tada, kai norite tuščios „OpenGL“ drobės ir norite piešti ant šios drobės nenaudodami jokių „Android“ API.

Tačiau jei jūsų programą reikia šiek tiek pakelti, tada tos dalys gali būti perkeltos į C ir jūs galite pamatyti greičio padidėjimą, tačiau ne tiek, kiek jūs kada nors galėjote pamatyti.

1. Tipa ukurkite atkūrimo tašką „Cortana“ paieško lauke užduočių juotoje. 2. Pairinkite ukurkite atkūrimo tašką (Valdymo kyda) rezultata....

talini kompiuteri (kairėje) ir nešiojama kompiuteri (dešinėje)UB darbalaukio klaviatūro papratai uteikia atkirą paudinimo ekrano klavišą šalia „Pagrindini“ ir „Ištrinti“ klavišų. Atvirkščiai, nešiojam...

Nauji Pranešimai