XDA mítoszrombolók: Linaro 4.7.4 vs. GCC 4.7

Az optimalizált eszközlánc fontossága az egyik legforróbb téma az Android fejlesztői világában. Sokan hallottatok már a GCC-ről és a Linaróról, amelyek a két legnagyobb ilyen típusú projekt. A GCC egy régi kéz, amelyet eredetileg 1987-ben adtak ki, míg Linaro viszonylag fiatal játékos, mindössze négy éves.

Először merüljünk el e két projekt történetében. Ahogy korábban mondtam, a GNU Compiler Collection régi. Az évek során különféle projektek összeállítására használták, beleértve az Androidot is. A Google úgy döntött, hogy a 4.6-os és 4.7-es verziót használja alapértelmezett eszközláncként, és ebben a tesztsorozatban a 4.7-es verzióra szeretnék összpontosítani.

A Linaro 2010-ben jelent meg, és ARM architektúrákra lett optimalizálva. És természetesen az Android-alapú okostelefonok és táblagépek túlnyomó többségében az ARM-et használják. A Linarót kernelek vagy teljes ROM-ok fordítására használt eszközláncként találhatja meg, és sok fejlesztő azt állítja, hogy ez az eszközlánc gyorsabb és erősebb, mint a GCC.

A Pulser_G2 fejlesztői adminisztrátorunktól inspirálva úgy döntöttem, hogy kipróbálom ezt a mítoszt, és megnézem, hogy ezek az állítások valósak-e. Ehhez először letöltöttem az AOSP forrást. építettem egy aosp_mako-eng megcélozza a Nexus 4-emet a Google által előre elkészített alapértelmezett készlet használatával. Után otapacsomagot készíteni, Villogásra készen kaptam az 183115481 bájtos zip fájlt. Ezután letöltöttem a Linaro 4.7.4-es eszközláncot, és lecseréltem a GCC-t prebuilts/gcc/linux-86. Elvégeztem a szükséges változtatásokat az O3 optimalizálási szint beállításához. Mivel az AOSP csak az előre elkészített rendszermagokat támogatja (módosítások nélkül), a Linaro-val önállóan építettem egy kernelt, a mako-kernelben pedig a saját blobbammal cseréltem le a kernelt.

 Alább láthatja a két eredő archívumot. Amint látja, a Linaro archívum valamivel nagyobb, tehát ez az eszközlánc valójában tesz valamit a bin és xbin mappák tárolására. Maga a kernelfájl is nagyobb.

De nem a fájl mérete a legfontosabb. Ehelyett koncentráljunk a teljesítményre. Ennek mérésére az AnTuTu benchmarkot használtam. A nagyobb pontosság érdekében minden tesztet háromszor futtattam le. Amint alább látható, a különbség meglehetősen nagy. Azonban nem bíznék túl vakon ezekben a tesztekben, mivel az eredmények minden tesztnél eltérőek voltak. Ennek ellenére a Linaro néhány ponttal jobb volt, mint a GCC, de az AnTuTu nem olyan megbízható, mint gondolná.

GCC

Linaro

A következő teszteket végeztük el a 3DMarkkal annak megállapítására, hogy egy eszközlánc befolyásolhatja-e a grafikus teljesítményt. A különbség még jelentősebb volt, mint Antutu esetében. A GCC-vel kevés FPS-t nyerhet, de a Linaro-val általában jobb a sima. A pontszám is valamivel magasabb.

GCC

Linaro

Az utolsó teszt az Asphalt 8: Airborne játékkal futott le. Alább két videót láthat a játékról, amely mindkét eszközláncon fut. Az első Linaroval, míg a második GCC-vel készült. Személy szerint úgy gondolom, hogy a Linaro egy kicsit simábbnak érzi magát, mint a GCC, de ez lehet, hogy csak a placebo hatás, mivel ez nem kettős vak teszt volt. Mindkét kernel raktáron volt, és nem tartalmazott finomításokat, túlhajtást és minden egyéb, a teljesítmény javítását célzó finomítást.

//www.youtube.com/embed/BZRZenaNr9A

Szóval Linaro jobb?

Bár eleinte szkeptikus voltam, be kell vallanom, hogy a Linaro jobb választásnak tűnik, mint a GCCat, legalábbis az én hardverkonfigurációmon. Az operációs rendszer érzékenyebbnek és gyorsabbnak tűnt, mint amikor a GCC használatával készült. A GCC azonban még mindig sziklaszilárd, így ha végső stabilitásra van szüksége, akkor is ez lehet a legjobb választás.

A következő epizódokban megpróbálok összehasonlítani más eszközláncokat, mint például a SaberMod és a Linaro 4.8. Kérjük, ossza meg velünk kedvenc szerszámláncait az alábbi megjegyzésekben. És ha szeretné, hogy bármilyen más szerszámláncot teszteljünk, kérjük, szóljon!