XDA mitų griovėjai: Linaro 4.7.4 vs. GCC 4.7

Optimizuotos įrankių grandinės svarba yra viena iš karščiausių temų Android kūrėjų pasaulyje. Daugelis iš jūsų tikriausiai girdėjote apie GCC ir Linaro, kurie yra du didžiausi tokio tipo projektai. GCC yra sena komanda, kuri iš pradžių buvo išleista 1987 m., o Linaro yra palyginti jaunas žaidėjas, jam tik ketveri metai.

Pirmiausia pasinerkime į šių dviejų projektų istoriją. Kaip jau sakiau anksčiau, GNU Compiler kolekcija yra sena. Bėgant metams jis buvo naudojamas įvairiems projektams, įskaitant „Android“, sudaryti. „Google“ nusprendė naudoti 4.6 ir 4.7 versijas kaip numatytąsias įrankių grandines, todėl šioje bandymų serijoje norėčiau sutelkti dėmesį į 4.7 versiją.

„Linaro“ buvo paleista 2010 m. ir buvo optimizuota ARM architektūroms. Ir, žinoma, ARM naudojama daugumoje „Android“ valdomų išmaniųjų telefonų ir planšetinių kompiuterių. „Linaro“ galite rasti kaip įrankių grandinę, naudojamą branduoliams arba ištisiems ROM kompiliavimui, ir daugelis kūrėjų teigia, kad ši įrankių grandinė yra greitesnė ir galingesnė nei GCC.

Įkvėptas mūsų kūrėjo administratoriaus Pulser_G2, nusprendžiau išbandyti šį mitą ir patikrinti, ar šie teiginiai yra tikri. Norėdami tai padaryti, pirmiausia atsisiunčiau AOSP šaltinį. Aš pastatiau an aosp_mako-eng taikykite mano „Nexus 4“, naudodami numatytąjį iš anksto sukurtų „Google“ rinkinį. Po to padaryti otapapaketą, Gavau 183115481 baitų ZIP failą, paruoštą mirksėti. Po to atsisiunčiau „Linaro 4.7.4“ įrankių grandinę ir pakeičiau GCC prebuilts/gcc/linux-86. Atlikau reikiamus pakeitimus, kad būtų nustatytas O3 optimizavimo lygis. Kadangi AOSP palaiko tik iš anksto sukonstruotus branduolius (be modifikacijų), aš pats sukūriau branduolį su Linaro ir pakeičiau branduolį mako branduolyje savo blob.

 Žemiau galite pamatyti du gautus archyvus. Kaip matote, Linaro archyvas yra šiek tiek didesnis, todėl ši įrankių grandinė iš tikrųjų kažką daro su bin ir xbin aplankais. Pats branduolio failas taip pat yra didesnis.

Tačiau failo dydis nėra svarbiausias dalykas. Vietoj to, sutelkime dėmesį į našumą. Norėdami tai įvertinti, naudojau AnTuTu etaloną. Kad būtų didesnis tikslumas, kiekvieną testą atlikau tris kartus. Kaip matote žemiau, skirtumas yra gana didelis. Tačiau šiais testais per daug aklai netikėčiau, nes kiekvieno testo rezultatai skyrėsi. Nepaisant to, „Linaro“ buvo keliais taškais pranašesnis už GCC, tačiau „AnTuTu“ nėra toks patikimas, kaip manote.

GCC

Linaro

Šie testai buvo atlikti naudojant 3DMark, siekiant išsiaiškinti, ar įrankių grandinė gali paveikti grafikos našumą. Skirtumas buvo dar reikšmingesnis nei su Antutu. Naudodami GCC galite gauti keletą FPS, tačiau bendras sklandumas yra geresnis naudojant „Linaro“. Rezultatas taip pat šiek tiek didesnis.

GCC

Linaro

Paskutinis bandymas buvo atliktas naudojant žaidimą Asphalt 8: Airborne. Žemiau galite pamatyti du žaidimo vaizdo įrašus, veikiančius abiejose įrankių grandinėse. Pirmasis buvo pagamintas su Linaro, o antrasis su GCC. Asmeniškai manau, kad Linaro jaučiasi šiek tiek sklandžiau nei GCC, bet tai gali būti tik placebo efektas, nes tai nebuvo dvigubai aklas testas. Abu branduoliai buvo atsargūs ir be pataisymų, įsijungimo ir kitų įmantrių patobulinimų, siekiant pagerinti našumą.

//www.youtube.com/embed/BZRZenaNr9A

Taigi ar Linaro geresnis?

Nors iš pradžių buvau skeptiškai nusiteikęs, turiu pripažinti, kad Linaro atrodo geresnis pasirinkimas nei GCCat, bent jau pagal mano aparatinės įrangos konfigūraciją. OS buvo jautresnis ir greitesnis nei tada, kai buvo sukurta naudojant GCC. Tačiau GCC vis dar yra tvirtas, todėl jei jums reikia didžiausio stabilumo, jis vis tiek gali būti geriausias pasirinkimas.

Kituose epizoduose pabandysiu palyginti kitas įrankių grandines, tokias kaip SaberMod ir Linaro 4.8. Praneškite mums apie savo mėgstamas įrankių grandines toliau pateiktose pastabose. Ir jei norite, kad išbandytume kitas įrankių grandines, pasakykite tai!