XDA 신화 파괴자: Linaro 4.7.4 대. GCC 4.7

최적화된 툴체인의 중요성은 Android 개발 세계에서 가장 뜨거운 주제 중 하나입니다. 여러분 중 많은 분들이 이러한 유형의 가장 큰 프로젝트인 GCC와 Linaro에 대해 들어보셨을 것입니다. GCC는 1987년에 처음 출시된 오래된 핸드인 반면, Linaro는 고작 4살의 비교적 젊은 플레이어입니다.

먼저 이 두 프로젝트의 역사를 살펴보겠습니다. 앞서 말했듯이 GNU 컴파일러 컬렉션은 오래되었습니다. 수년에 걸쳐 Android를 포함한 다양한 프로젝트를 컴파일하는 데 사용되었습니다. Google은 버전 4.6과 4.7을 기본 툴체인으로 사용하기로 결정했으며, 저는 이 일련의 테스트에서 버전 4.7에 중점을 두고 싶습니다.

Linaro는 2010년에 출시되었으며 ARM 아키텍처에 최적화되었습니다. 물론 ARM은 대부분의 Android 기반 스마트폰과 태블릿에 사용됩니다. 커널이나 전체 ROM을 컴파일하는 데 사용되는 툴체인으로 Linaro를 찾을 수 있으며 많은 개발자는 이 툴체인이 GCC보다 빠르고 강력하다고 주장합니다.

개발자 관리자 Pulser_G2에서 영감을 받아 저는 이 신화를 시험해보고 이러한 주장이 진짜인지 확인하기로 결정했습니다. 이를 위해 먼저 AOSP 소스를 다운로드했습니다. 나는 aosp_mako-eng Google의 기본 사전 빌드 세트를 사용하여 내 Nexus 4의 대상입니다. 후에 오타패키지를 만들고, 플래시할 준비가 된 183115481바이트 zip 파일이 있습니다. 그 후 Linaro 4.7.4 툴체인을 다운로드하고 다음에서 GCC를 교체했습니다. 미리 빌드된/gcc/linux-86. 최적화 수준 O3을 설정하기 위해 필요한 변경을 수행했습니다. AOSP는 사전 빌드된 커널(수정 없음)만 지원하므로 Linaro를 사용하여 직접 커널을 빌드하고 mako-kernel의 커널을 자체 blob으로 교체했습니다.

 아래에서 두 개의 결과 아카이브를 볼 수 있습니다. 보시다시피 Linaro 아카이브는 약간 더 크므로 이 툴체인은 실제로 bin 및 xbin 폴더에 대해 작업을 수행합니다. 커널 파일 자체도 더 큽니다.

그러나 파일 크기는 가장 중요한 것이 아닙니다. 대신 성능에 집중하자. 이를 측정하기 위해 AnTuTu 벤치마크를 사용했습니다. 정확성을 높이기 위해 각 테스트를 세 번 실행했습니다. 아래에서 볼 수 있듯이 차이가 상당히 큽니다. 그러나 테스트마다 결과가 다르기 때문에 이 테스트를 너무 맹신하지는 않습니다. 즉, Linaro는 GCC보다 몇 점 더 나았지만 AnTuTu는 생각만큼 신뢰할 수 없습니다.

GCC

리나로

툴체인이 그래픽 성능에 영향을 미칠 수 있는지 확인하기 위해 3DMark를 사용하여 다음 테스트를 수행했습니다. Antutu보다 그 차이가 훨씬 더 컸습니다. GCC를 사용하면 FPS를 거의 얻을 수 없지만 Linaro를 사용하면 전반적인 부드러움이 더 좋습니다. 점수도 좀 높네요.

GCC

리나로

최종 테스트는 Asphalt 8: Airborne 게임을 사용하여 실행되었습니다. 아래에서는 두 툴체인에서 실행되는 게임에 대한 두 개의 비디오를 볼 수 있습니다. 첫 번째는 Linaro로 만들어졌고 두 번째는 GCC로 만들어졌습니다. 개인적으로는 Linaro가 GCC보다 조금 부드러운 느낌이 든다고 생각하는데, 이는 이중맹검 테스트가 아니기 때문에 플라시보 효과일 수도 있습니다. 두 커널 모두 재고가 있었고 성능 향상을 위한 조정, 오버클럭 및 기타 멋진 조정이 없었습니다.

//www.youtube.com/embed/BZRZenaNr9A

그렇다면 Linaro가 더 나은가요?

처음에는 회의적이었지만 적어도 내 하드웨어 구성에서는 Linaro가 GCC보다 더 나은 선택인 것 같다는 점을 인정해야 합니다. OS는 GCC를 사용하여 구축했을 때보다 응답성이 더 빠르고 빨라졌습니다. 그러나 GCC는 여전히 견고하므로 궁극적인 안정성이 필요한 경우 여전히 최선의 선택일 수 있습니다.

다음 에피소드에서는 SaberMod 및 Linaro 4.8과 같은 다른 툴체인을 비교해 보겠습니다. 아래 댓글을 통해 귀하가 선호하는 툴체인에 대해 알려주세요. 그리고 다른 툴체인을 테스트하기를 원하시면 그렇게 말씀해 주세요!