Vigtigheden af en optimeret værktøjskæde er et af de hotteste emner i Android-udviklerverdenen. Mange af jer har måske hørt om GCC og Linaro, som er de to største projekter af denne type. GCC er en gammel hånd, der oprindeligt blev udgivet i 1987, mens Linaro er en relativt ung spiller på kun fire år.
Lad os først dykke ned i historien om disse to projekter. Som jeg sagde tidligere, er GNU Compiler Collection gammel. Gennem årene er det blevet brugt til at kompilere forskellige projekter, herunder Android. Google besluttede at bruge version 4.6 og 4.7 som deres standardværktøjskæder, og jeg vil gerne fokusere på version 4.7 i denne serie af test.
Linaro blev lanceret i 2010, og den er blevet optimeret til ARM-arkitekturer. Og selvfølgelig bruges ARM i langt de fleste Android-drevne smartphones og tablets. Du kan finde Linaro som en værktøjskæde, der bruges til at kompilere kerner eller hele ROM'er, og mange udviklere hævder, at denne værktøjskæde er hurtigere og mere kraftfuld end GCC.
Inspireret af vores udvikleradministrator Pulser_G2 besluttede jeg at give denne myte et skud og se, om disse påstande er rigtige. For at gøre dette downloadede jeg først AOSP-kilden. Jeg byggede en
Nedenfor kan du se de to resulterende arkiver. Som du kan se, er Linaro-arkivet lidt større, så denne værktøjskæde gør faktisk noget ved bin og xbin-mapper. Selve kernefilen er også større.
Men filstørrelsen er ikke det vigtigste. Lad os i stedet fokusere på ydeevne. For at måle dette brugte jeg AnTuTu benchmark. For øget præcision kørte jeg hver test tre gange. Som du kan se nedenfor, er forskellen ret stor. Jeg ville dog ikke sætte for meget blind tillid til disse tests, da resultaterne var forskellige på hver test. Når det er sagt, var Linaro få point bedre end GCC, men AnTuTu er ikke så pålidelig, som du måske tror.
GCC
Linaro
Følgende test blev udført med 3DMark for at se, om en værktøjskæde kan påvirke grafikydelsen. Forskellen var endnu mere signifikant end med Antutu. Du kan få få FPS med GCC, men den generelle glathed er bedre med Linaro. Scoren er også lidt højere.
GCC
Linaro
Den sidste test blev kørt med spillet Asphalt 8: Airborne. Nedenfor kan du se to videoer af spillet, der kører på begge værktøjskæder. Den første blev lavet med Linaro, mens den anden med GCC. Personligt synes jeg, at Linaro føles en smule glattere end GCC, men det kan kun være placebo-effekten, da dette ikke var en dobbeltblind test. Begge kerner var lagerførte og fri for tweaks, overclocking og andre smarte tweaks for at forbedre ydeevnen.
//www.youtube.com/embed/BZRZenaNr9A
Så er Linaro bedre?
Selvom jeg var skeptisk i starten, må jeg indrømme, at Linaro ser ud til at være et bedre valg end GCC i det mindste på min hardwarekonfiguration. OS føltes mere responsivt og hurtigere, end da det blev bygget ved hjælp af GCC. GCC er dog stadig bundsolid, så hvis du har brug for ultimativ stabilitet, kan det stadig være det bedste valg.
I de næste afsnit vil jeg forsøge at sammenligne andre værktøjskæder såsom SaberMod og Linaro 4.8. Fortæl os venligst om dine foretrukne værktøjskæder i kommentarerne nedenfor. Og hvis du gerne vil have os til at teste andre værktøjskæder, så sig det gerne!