XDA Efsane Avcıları: Linaro 4.7.4 vs. GCC 4.7

Optimize edilmiş bir araç zincirinin önemi, Android geliştirici dünyasının en sıcak konularından biridir. Bu türün en büyük iki projesi olan GCC ve Linaro'yu çoğunuz duymuşsunuzdur. GCC, ilk olarak 1987'de piyasaya sürülen eski bir el, Linaro ise sadece dört yaşında nispeten genç bir oyuncu.

Öncelikle bu iki projenin geçmişine bakalım. Daha önce de söylediğim gibi GNU Derleyici Koleksiyonu eskidir. Yıllar boyunca Android de dahil olmak üzere çeşitli projeleri derlemek için kullanıldı. Google, varsayılan araç zincirleri olarak 4.6 ve 4.7 sürümlerini kullanmaya karar verdi ve ben de bu test serisinde 4.7 sürümüne odaklanmak istiyorum.

Linaro 2010 yılında piyasaya sürüldü ve ARM mimarileri için optimize edildi. Ve elbette ARM, Android destekli akıllı telefonların ve tabletlerin büyük çoğunluğunda kullanılıyor. Linaro'yu, çekirdekleri veya ROM'ların tamamını derlemek için kullanılan bir araç zinciri olarak bulabilirsiniz ve birçok geliştirici, bu araç zincirinin GCC'den daha hızlı ve daha güçlü olduğunu iddia ediyor.

Geliştirici Yöneticimiz Pulser_G2'den ilham alarak bu efsaneye bir şans vermeye ve bu iddiaların gerçek olup olmadığını görmeye karar verdim. Bunu yapmak için öncelikle AOSP kaynağını indirdim. bir inşa ettim aosp_mako-eng Google'ın varsayılan önceden oluşturulmuş setini kullanarak Nexus 4'üm için hedef. Sonrasında otapackage yap, Flash'a hazır 183115481 baytlık zip dosyam var. Daha sonra Linaro 4.7.4 araç zincirini indirdim ve GCC'yi değiştirdim. önceden oluşturulmuş yapılar/gcc/linux-86. Optimizasyon O3 seviyesini ayarlamak için gerekli değişiklikleri yaptım. AOSP yalnızca önceden oluşturulmuş çekirdekleri (değişiklik yapmadan) desteklediğinden, Linaro ile kendi başıma bir çekirdek oluşturdum ve mako-çekirdeğindeki çekirdeği kendi blob'umla değiştirdim.

 Aşağıda ortaya çıkan iki arşivi görebilirsiniz. Gördüğünüz gibi Linaro arşivi biraz daha büyük, yani bu araç zinciri aslında bin ve xbin klasörlerine bir şeyler yapıyor. Çekirdek dosyasının kendisi de daha büyüktür.

Ancak dosya boyutu en önemli şey değildir. Bunun yerine performansa odaklanalım. Bunu ölçmek için AnTuTu kıyaslamasını kullandım. Daha fazla hassasiyet için her testi üç kez yaptım. Aşağıda görebileceğiniz gibi fark oldukça büyük. Ancak, sonuçlar her testte farklılık gösterdiği için bu testlere çok fazla körü körüne inanmayacağım. Bununla birlikte Linaro, GCC'den birkaç puan daha iyiydi ancak AnTuTu düşündüğünüz kadar güvenilir değil.

GCC

Linaro

Bir araç zincirinin grafik performansını etkileyip etkilemediğini görmek için 3DMark ile aşağıdaki testler gerçekleştirildi. Aradaki fark Antutu'dakinden bile daha anlamlıydı. GCC ile çok az FPS kazanabilirsiniz ancak Linaro ile genel akıcılık daha iyidir. Puanı da biraz daha yüksek.

GCC

Linaro

Son test Asphalt 8: Airborne oyunu kullanılarak gerçekleştirildi. Aşağıda her iki araç zincirinde de çalışan oyunun iki videosunu görebilirsiniz. İlki Linaro ile, ikincisi ise GCC ile yapıldı. Şahsen, Linaro'nun GCC'den biraz daha yumuşak hissettiğini düşünüyorum, ancak bu çift kör bir test olmadığı için bu sadece plasebo etkisi olabilir. Her iki çekirdek de stoktaydı ve performansı artırmak için ince ayarlar, hız aşırtma ve diğer süslü ince ayarlar içermiyordu.

//www.youtube.com/embed/BZRZenaNr9A

Peki Linaro Daha mı İyi?

İlk başta şüpheci olsam da, en azından donanım konfigürasyonum açısından Linaro'nun GCC'den daha iyi bir seçim gibi göründüğünü itiraf etmeliyim. İşletim sistemi, GCC kullanılarak oluşturulduğu zamana göre daha duyarlı ve daha hızlıydı. Bununla birlikte, GCC hala kaya gibi sağlamdır, bu nedenle nihai stabiliteye ihtiyacınız varsa, yine de en iyi seçim olabilir.

Sonraki bölümlerde SabreMod ve Linaro 4.8 gibi diğer toolchainleri karşılaştırmaya çalışacağım. Lütfen aşağıdaki yorumlarda favori araç zincirleriniz hakkında bize bilgi verin. Başka herhangi bir alet zincirini test etmemizi isterseniz lütfen bunu söyleyin!