XDA Myth Busters: Linaro 4.7.4 vs. GCC 4.7

click fraud protection

Optimoidun työkaluketjun merkitys on yksi Android-kehittäjien maailman kuumimmista aiheista. Monet teistä ovat ehkä kuulleet GCC: stä ja Linarosta, jotka ovat kaksi suurinta tämäntyyppistä projektia. GCC on vanha käsi, joka julkaistiin alun perin vuonna 1987, kun taas Linaro on suhteellisen nuori pelaaja, vain neljävuotias.

Sukellaan ensin näiden kahden projektin historiaan. Kuten aiemmin sanoin, GNU Compiler Collection on vanha. Vuosien varrella sitä on käytetty erilaisten projektien kokoamiseen, mukaan lukien Android. Google päätti käyttää versioita 4.6 ja 4.7 oletustyökaluketjuinaan, ja haluaisin keskittyä versioon 4.7 tässä testisarjassa.

Linaro julkaistiin vuonna 2010, ja se on optimoitu ARM-arkkitehtuureille. Ja tietysti, ARM: ää käytetään suurimmassa osassa Android-älypuhelimista ja tableteista. Löydät Linaron työkaluketjuna, jota käytetään ytimien tai kokonaisten ROM-levyjen kääntämiseen, ja monet kehittäjät väittävät, että tämä työkaluketju on nopeampi ja tehokkaampi kuin GCC.

Kehittäjäjärjestelmänvalvojamme Pulser_G2 inspiroimana päätin kokeilla tätä myyttiä ja katsoa, ​​ovatko nämä väitteet totta. Tätä varten latasin ensin AOSP-lähteen. Rakensin an

aosp_mako-eng kohdistaa Nexus 4 -puhelimeeni käyttämällä Googlen oletusasennussarjaa. Jälkeen tehdä otapapakkaus, Minulla on 183115481-tavuinen zip-tiedosto valmiina vilkkumaan. Sen jälkeen latasin Linaro 4.7.4 -työkaluketjun ja vaihdoin GCC: n prebuilts/gcc/linux-86. Tein tarvittavat muutokset asettamaan optimointitason O3. Koska AOSP tukee vain valmiita ytimiä (ilman muutoksia), rakensin ytimen itse Linaron avulla ja korvasin mako-ytimen ytimen omalla blobillani.

 Alla näet kaksi tuloksena olevaa arkistoa. Kuten näet, Linaro-arkisto on hieman suurempi, joten tämä työkaluketju todella tekee jotain bin- ja xbin-kansioille. Itse ydintiedosto on myös suurempi.

Mutta tiedostokoko ei ole tärkein asia. Sen sijaan keskitytään suorituskykyyn. Tämän mittaamiseen käytin AnTuTu-benchmarkia. Tarkkuuden lisäämiseksi suoritin jokaisen testin kolme kertaa. Kuten alta näet, ero on melko suuri. En kuitenkaan luottaisi liian sokeasti näihin testeihin, koska tulokset vaihtelivat jokaisessa testissä. Linaro oli kuitenkin muutaman pisteen parempi kuin GCC, mutta AnTuTu ei ole niin luotettava kuin luulisi.

GCC

Linaro

Seuraavat testit suoritettiin 3DMarkilla sen selvittämiseksi, voiko työkaluketju vaikuttaa grafiikan suorituskykyyn. Ero oli vieläkin merkittävämpi kuin Antutulla. Saatat saada muutaman FPS: n GCC: llä, mutta yleinen sujuvuus on parempi Linaron kanssa. Pisteet ovat myös hieman korkeammat.

GCC

Linaro

Viimeinen testi ajettiin Asphalt 8: Airborne -pelillä. Alta näet kaksi videota pelistä molemmissa työkaluketjuissa. Ensimmäinen tehtiin Linarolla ja toinen GCC: llä. Henkilökohtaisesti uskon, että Linaro tuntuu hieman tasaisemmalta kuin GCC, mutta se voi olla vain lumevaikutus, koska tämä ei ollut kaksoissokkotesti. Molemmat ytimet olivat varastossa, ja niissä ei ollut säätöjä, ylikellotusta tai muita hienoja parannuksia suorituskyvyn parantamiseksi.

//www.youtube.com/embed/BZRZenaNr9A

Onko Linaro siis parempi?

Vaikka olin aluksi skeptinen, minun on myönnettävä, että Linaro vaikuttaa GCCat: ta paremmalta valinnalta ainakin laitteistokokoonpanossani. Käyttöjärjestelmä tuntui reagoivammalta ja nopeammalta kuin silloin, kun se rakennettiin GCC: tä käyttämällä. GCC on kuitenkin edelleen kivikkoinen, joten jos tarvitset äärimmäistä vakautta, se voi silti olla paras valinta.

Seuraavissa jaksoissa yritän verrata muita työkaluketjuja, kuten SaberMod ja Linaro 4.8. Kerro meille suosikkityökaluketjuistasi alla olevissa kommenteissa. Ja jos haluat meidän testaavan muita työkaluketjuja, kerro se!