XDA Myth Busters: Linaro 4.7.4 vs. GCC 4.7

Importanța unui lanț de instrumente optimizat este unul dintre cele mai fierbinți subiecte din lumea dezvoltatorilor Android. Mulți dintre voi s-ar putea să fi auzit despre GCC și Linaro, care sunt cele mai mari două proiecte de acest tip. GCC este o mână veche care a fost lansată inițial în 1987, în timp ce Linaro este un jucător relativ tânăr, la doar patru ani.

Să ne aruncăm mai întâi în istoria acestor două proiecte. După cum am spus mai devreme, GNU Compiler Collection este veche. De-a lungul anilor, a fost folosit pentru a compila diverse proiecte, inclusiv Android. Google a decis să folosească versiunile 4.6 și 4.7 ca lanțuri de instrumente implicite și aș dori să mă concentrez pe versiunea 4.7 în această serie de teste.

Linaro a fost lansat în 2010 și a fost optimizat pentru arhitecturi ARM. Și, desigur, ARM este folosit în marea majoritate a smartphone-urilor și tabletelor cu Android. Puteți găsi Linaro ca un lanț de instrumente folosit pentru a compila nuclee sau ROM-uri întregi, iar mulți dezvoltatori susțin că acest lanț de instrumente este mai rapid și mai puternic decât GCC.

Inspirat de administratorul nostru dezvoltator Pulser_G2, am decis să dau o șansă acestui mit și să văd dacă aceste afirmații sunt reale. Pentru a face acest lucru, am descărcat mai întâi sursa AOSP. am construit un aosp_mako-ing țintă pentru Nexusul meu 4 folosind setul prestabilit de preconstrucții de la Google. După face otapachet, Am un fișier zip de 183115481 de octeți gata de flash. După aceea, am descărcat lanțul de instrumente Linaro 4.7.4 și am înlocuit GCC în preconstruite/gcc/linux-86. Am efectuat modificările necesare pentru a seta nivelul O3 de optimizare. Deoarece AOSP acceptă numai nuclee prefabricate (fără modificări), am construit un nucleu pe cont propriu cu Linaro și am înlocuit nucleul din mako-kernel cu propriul meu blob.

 Mai jos puteți vedea cele două arhive rezultate. După cum puteți vedea, arhiva Linaro este puțin mai mare, așa că acest lanț de instrumente face ceva pentru folderele bin și xbin. Fișierul kernel în sine este, de asemenea, mai mare.

Dar dimensiunea fișierului nu este cel mai important lucru. În schimb, să ne concentrăm pe performanță. Pentru a măsura acest lucru, am folosit benchmark-ul AnTuTu. Pentru o precizie sporită, am rulat fiecare test de trei ori. După cum puteți vedea mai jos, diferența este destul de mare. Cu toate acestea, nu aș pune prea multă încredere oarbă în aceste teste, deoarece rezultatele diferă la fiecare test. Acestea fiind spuse, Linaro a fost cu câteva puncte mai bun decât GCC, dar AnTuTu nu este atât de fiabil pe cât ați putea crede.

GCC

Linaro

Următoarele teste au fost efectuate cu 3DMark pentru a vedea dacă un lanț de instrumente poate afecta performanța grafică. Diferența a fost și mai semnificativă decât cu Antutu. Este posibil să obțineți puține FPS cu GCC, dar netezimea generală este mai bună cu Linaro. Scorul este, de asemenea, ceva mai mare.

GCC

Linaro

Testul final a fost rulat folosind jocul Asphalt 8: Airborne. Mai jos puteți vedea două videoclipuri ale jocului care rulează pe ambele lanțuri de instrumente. Primul a fost realizat cu Linaro, în timp ce al doilea cu GCC. Personal, cred că Linaro se simte puțin mai lin decât GCC, dar acesta poate fi doar efectul placebo, deoarece acesta nu a fost un test dublu-orb. Ambele nuclee erau stoc și nu aveau modificări, overclocking și orice alte modificări fanteziste pentru a îmbunătăți performanța.

//www.youtube.com/embed/BZRZenaNr9A

Deci Linaro este mai bun?

Deși am fost sceptic la început, trebuie să recunosc că Linaro pare a fi o alegere mai bună decât GCC, cel puțin în configurația mea hardware. Sistemul de operare s-a simțit mai receptiv și mai rapid decât atunci când a fost construit folosind GCC. Cu toate acestea, GCC este încă solid, așa că dacă aveți nevoie de stabilitate maximă, poate fi totuși cea mai bună alegere.

În episoadele următoare, voi încerca să compar și alte lanțuri de instrumente precum SaberMod și Linaro 4.8. Vă rugăm să ne spuneți despre lanțurile dvs. de instrumente preferate în comentariile de mai jos. Și dacă doriți să testăm și alte lanțuri de instrumente, vă rugăm să spuneți acest lucru!