XDA müüdimurdjad: Linaro 4.7.4 vs. GCC 4.7

Optimeeritud tööriistaahela tähtsus on Androidi arendajamaailma üks kuumemaid teemasid. Paljud teist on võib-olla kuulnud GCC-st ja Linarost, mis on kaks suurimat seda tüüpi projekti. GCC on vana käsi, mis ilmus algselt 1987. aastal, samas kui Linaro on suhteliselt noor mängija, vaid nelja-aastane.

Sukeldume esmalt nende kahe projekti ajalukku. Nagu ma varem ütlesin, on GNU Compiler Collection vana. Aastate jooksul on seda kasutatud erinevate projektide, sealhulgas Androidi koostamiseks. Google otsustas kasutada vaiketööriistaahelatena versioone 4.6 ja 4.7 ning ma tahaksin selles testiseerias keskenduda versioonile 4.7.

Linaro käivitati 2010. aastal ja see on optimeeritud ARM-arhitektuuride jaoks. Ja loomulikult kasutatakse ARM-i enamikus Androidi toega nutitelefonides ja tahvelarvutites. Linaro võib leida tööriistaahelana, mida kasutatakse tuumade või tervete ROM-ide kompileerimiseks, ja paljud arendajad väidavad, et see tööriistaahel on kiirem ja võimsam kui GCC.

Inspireerituna meie arendajaadministraatorist Pulser_G2, otsustasin seda müüti proovida ja vaadata, kas need väited on tõesed. Selleks laadisin esmalt alla AOSP allika. Ma ehitasin an

aosp_mako-eng minu Nexus 4 sihtmärgiks, kasutades Google'i eelehitatud vaikekomplekti. Pärast tee otapapakk, Sain 183115481-baidise ZIP-faili välgutamiseks valmis. Pärast seda laadisin alla Linaro 4.7.4 tööriistaketi ja asendasin GCC sisse prebuilts/gcc/linux-86. Tegin vajalikud muudatused, et määrata optimeerimise tase O3. Kuna AOSP toetab ainult eelehitatud kerneleid (ilma muudatusteta), ehitasin kerneli iseseisvalt Linaroga ja asendasin mako-kerneli kerneli enda blobiga.

 Allpool näete kahte saadud arhiivi. Nagu näete, on Linaro arhiiv pisut suurem, nii et see tööriistaahel teeb tegelikult midagi bin- ja xbin-kaustadega. Kerneli fail ise on samuti suurem.

Kuid faili suurus pole kõige olulisem. Selle asemel keskendugem jõudlusele. Selle mõõtmiseks kasutasin AnTuTu benchmarki. Täpsuse suurendamiseks tegin iga testi kolm korda. Nagu allpool näha, on erinevus üsna suur. Kuid ma ei paneks nendesse testidesse liiga palju pimedat usku, kuna tulemused olid igal testil erinevad. Sellegipoolest oli Linaro mõne punkti võrra parem kui GCC, kuid AnTuTu pole nii usaldusväärne, kui arvate.

GCC

Linaro

Järgmised testid viidi läbi rakendusega 3DMark, et näha, kas tööriistaahel võib graafika jõudlust mõjutada. Vahe oli isegi suurem kui Antutuga. GCC-ga võite saada vähe FPS-i, kuid Linaro puhul on üldine sujuvus parem. Hinne on ka veidi kõrgem.

GCC

Linaro

Viimane test viidi läbi, kasutades mängu Asphalt 8: Airborne. Allpool näete kahte videot mängust, mis mõlemas tööriistaahelas jookseb. Esimene tehti Linaroga, teine ​​aga GCC-ga. Isiklikult arvan, et Linaro tundub veidi sujuvam kui GCC, kuid see võib olla lihtsalt platseeboefekt, kuna see ei olnud topeltpime test. Mõlemad tuumad olid saadaval ja vabad näpunäidetest, kiirendamisest ega muudest jõudluse parandamiseks mõeldud väljamõeldud muudatustest.

//www.youtube.com/embed/BZRZenaNr9A

Kas Linaro on parem?

Kuigi ma olin alguses skeptiline, pean tunnistama, et Linaro tundub olevat parem valik kui GCCat vähemalt minu riistvarakonfiguratsioonis. OS tundus tundlikum ja kiirem kui siis, kui see loodi GCC abil. Kuid GCC on endiselt kivikindel, nii et kui vajate ülimat stabiilsust, võib see siiski olla parim valik.

Järgmistes osades proovin võrrelda teisi tööriistaahelaid, nagu SaberMod ja Linaro 4.8. Palun andke meile allolevates kommentaarides teada oma lemmiktööriistakettidest. Ja kui soovite, et testiksime mõnda muud tööriistaketti, siis öelge seda!