Java vs C lietotnes veiktspēja - Gerijs skaidro

Autors: John Stephens
Radīšanas Datums: 23 Janvārī 2021
Atjaunināšanas Datums: 1 Jūlijs 2024
Anonim
Java vs C app performance – Gary explains
Video: Java vs C app performance – Gary explains

Saturs


Sākot ar sliktāko rezultātu, 32 bitu Android 5.0, parāda, ka Java kods darbojas par 296% lēnāk nekā C, jeb citiem vārdiem sakot, četrreiz lēnāk. Atkal atcerieties, ka šeit nav svarīgs absolūtais ātrums, bet drīzāk atšķirība starp laiku, kas nepieciešams Java koda darbināšanai, salīdzinot ar C kodu, tajā pašā ierīcē. 32 bitu Android 4.4 KitKat ar savu Dalvik JVM ir nedaudz ātrāks - 237%. Tiklīdz tiek sākta operētājsistēma Android 6.0, Marshmallow lietas sāk dramatiski uzlaboties, 64-bitu operētājsistēmai Android 6.0 iegūstot vismazāko atšķirību starp Java un C.

Otrais tests ir galvenā skaitļa tests, izmantojot izmēģinājumu pa dalīšanu. Kā minēts iepriekš, šis kods izmanto 64 bituilgi veseli skaitļi un tāpēc atbalstīs 64 bitu procesorus.

Kā gaidīts, vislabākos rezultātus dod Android, kas darbojas ar 64 bitu procesoriem. 64 bitu Android 6.0 ātruma atšķirība ir ļoti maza, tikai 3%. 64 bitu Android 5.0 gadījumā tas ir 38%. Tas parāda uzlabojumus starp ART operētājsistēmā Android 5.0 un Optimizēšana kompilators, ko ART izmanto operētājsistēmā Android 6.0. Tā kā Android 7.0 N joprojām ir izstrādes beta versija, es rezultātus neuzrādīju, tomēr kopumā tā darbojas, kā arī Android 6.0 M, ja ne pat labāk. Sliktāki rezultāti ir 32 bitu Android versijām, un dīvainā kārtā 32 bitu Android 6.0 rezultāti ir sliktākie grupas rezultāti.


Trešais un pēdējais tests izpilda smagu matemātisko funkciju miljona iterāciju laikā. Funkcijai ir aritmētiska kā vesels skaitlis, tā arī ar peldošā komata aritmētika.

Un šeit pirmo reizi ir rezultāts, kurā Java faktiski darbojas ātrāk nekā C! Tam ir divi iespējamie izskaidrojumi, un abi šie jautājumi ir saistīti ar optimizāciju un Optimizēšanasastādītājs no ARM. Pirmkārt, Optimizēšana kompilators būtu varējis radīt optimālāku AArch64 kodu ar labāku reģistra piešķiršanu utt. nekā C kompilators Android Studio. Labāks kompilators vienmēr nozīmē labāku sniegumu. Var būt arī ceļš caur kodu, kuru Optimizēšanaaprēķināto kompilatoru var optimizēt, jo tam nav ietekmes uz gala rezultātu, bet C kompilators šo optimizāciju nav pamanījis. Es zinu, ka šāda veida optimizācija bija viens no galvenajiem O uzmanības centriemptimizēšanakompilators operētājsistēmā Android 6.0. Tā kā šī funkcija no manis ir tikai tīrs izgudrojums, varētu būt veids, kā optimizēt kodu, kurā izlaistas dažas sadaļas, bet es to neesmu pamanījis.Otrs iemesls ir tāds, ka šīs funkcijas izsaukšana pat miljons reizes neizraisa atkritumu savācēja darbību.


Tāpat kā PRIMES testā, arī šajā testā izmanto 64 bitu versijuilgi veseli skaitļi, tāpēc nākamais labākais rādītājs nāk no 64 bitu Android 5.0. Pēc tam nāk 32 bitu Android 6.0, kam seko 32 bitu Android 5.0 un visbeidzot 32 bitu Android 4.4.

Satīt

Kopumā C ir ātrāks nekā Java, tomēr atšķirība starp abiem ir krasi samazināta, izlaižot 64 bitu versiju Android 6.0 Marshmallow. Protams, reālajā pasaulē lēmums izmantot Java vai C nav melnbalts. Kamēr C ir dažas priekšrocības, visi Android lietotāja saskarne, visi Android pakalpojumi un visas Android API ir izveidotas tā, lai izsauktu no Java. C patiešām var izmantot tikai tad, ja vēlaties tukšu OpenGL audekls un vēlaties uz šī audekla zīmēt, neizmantojot nekādas Android API.

Tomēr, ja jūsu lietotnei ir jāveic lielas problēmas, šīs daļas var pārvietot uz C un jūs varētu redzēt ātruma uzlabojumu, tomēr ne tik daudz, kā jūs kādreiz būtu varējis redzēt.

Netflix, iepējam, ir vien no lielākajiem un pazītamākajiem video traumēšana pakalpojumiem paaulē, taču ta, protam, nav vienīgai. Ir ļoti daudz Netflix alternatīvu, ka katru vakaru ļau izklaidētie, daž...

Netflix katru gadu rīko darbinieku hakatonu, pie galda atneot dažu diezgan foršu hakatonu. Uzņēmum ir tikko nolēdzi avu 2019. gada notikumu, un tandout hack varētu būt tā auktai Project Rumble Pak....

Svaigas Publikācijas