>일반적인 문제 >Ark 컴파일러란 무엇입니까?

Ark 컴파일러란 무엇입니까?

(*-*)浩
(*-*)浩원래의
2019-07-22 09:43:1080570검색

Ark 컴파일러는 Android 시스템의 컴파일 효율성을 향상시키기 위해 Huawei가 출시한 시스템 및 애플리케이션 컴파일 및 실행 메커니즘입니다.

Ark 컴파일러란 무엇입니까?

화웨이는 2019년 4월 화웨이 P30 시리즈 국내 출시 컨퍼런스에서 이 기술을 처음으로 발표했습니다. (추천 학습: PHP 비디오 튜토리얼)

컴파일러는 "컴퓨터 언어(보통 고급 언어)"를 "다른 컴퓨터 언어(보통 저수준 언어)"로 번역하는 프로그램입니다. 파스칼, C++, C++, 자바 등 고급 컴퓨터 언어는 개발자가 쓰고, 읽고, 통신하고, 유지 관리하는 데 편리하지만, 저수준 기계어는 개발자가 쓰기, 읽기, 통신, 유지 관리에 편리합니다. 컴퓨터가 직접 해석하고 실행할 수 있습니다.

Huawei의 Ark 컴파일러는 Android 애플리케이션 개발자가 사용하는 JAVA 및 C/C++를 기계어 코드로 변환합니다. Wang Chenglu에 따르면 Huawei는 2009년부터 컴파일러 제작을 고려하기 시작했습니다. “HiSilicon이 칩을 만든 후 칩의 기능을 실제로 활용하려면 자체 컴파일러가 필요했기 때문에 2013년부터 Huawei가 자체 개발한 컴파일러를 컴파일러라고 합니다. HCC "

시간표에 따르면 Huawei는 2014년에 컴파일러 및 프로그래밍 언어 연구소를 설립했습니다. 2014년에 기술 전문가 Fred Chow가 Huawei에 합류하여 컴파일러의 주요 아키텍처를 담당했습니다. 10년 간의 탐색 끝에 Huawei는 마침내 Ark 컴파일러를 시작했습니다.

Huawei가 발표한 공식 데이터에 따르면, 이전 Android 애플리케이션 개발과 비교하여 Ark Compiler는 시스템 작동 유창성을 24%, 시스템 응답성을 44%, 타사 애플리케이션을 60% 향상시킬 수 있습니다(Weibo 속도 버전). 부드러움.

언어 간 통화 오버헤드 제거

Wang Chenglu는 기자들에게 Ark 컴파일러가 어떻게 유창성과 반응성을 향상시킬 수 있는지 자세히 설명했습니다.

우선, Ark 컴파일러는 "Android 성능 오버헤드에 영향을 미치는 핵심 원인 중 하나인 언어 간 호출 오버헤드를 제거하는" 다중 언어 공동 최적화 컴파일러입니다.

Wang Chenglu에 따르면 다음과 같습니다. 현재 Android 애플리케이션 시장에서 95%의 APP가 여러 언어로 개발되었습니다. "논리 부분은 모두 Java 코드이지만 기능을 향상시키기 위해 아마도 모든 APP 개발자는 Java 호출용 라이브러리를 C로 작성할 것입니다."

Java는 단순성, 객체 지향 및 분산이라는 특성을 지닌 객체 지향 프로그래밍 언어입니다. 비록 운영 효율성은 C++만큼 좋지는 않지만, 높은 개발 효율성과 강력한 크로스 플랫폼이라는 장점으로 인해 JAVA가 가장 먼저 선택되는 언어입니다. Android 개발과 JNI를 통한 로컬 C/C++ 라이브러리 호출도 개발자가 현재 수행하고 있는 작업입니다.

그러나 Java와 C 언어 간의 인터페이스 호출을 사용하면 필연적으로 추가 성능 오버헤드가 발생합니다. Wang Chenglu는 Huawei의 Ark 컴파일러가 개발 환경에서 다양한 언어 코드를 실행 파일 세트로 컴파일하여 실행 효율성이 더 높다고 말했습니다. .

성능에 영향을 미치는 가상 머신 메커니즘을 제거하고 실시간으로 메모리를 회수합니다

Wang Chenglu는 Huawei Ark 컴파일러의 두 번째 주요 기능은 성능에 영향을 미치는 가상 머신 메커니즘을 제거하는 것이라고 믿습니다.

Android 시스템의 개발 과정에서 가상 머신은 무시할 수 없습니다. Android 시스템은 Linux를 커널로 사용하여 애플리케이션 개발의 어려움을 줄이고 이를 다양한 하드웨어 구성의 기기에 적용하기 위해 개발했습니다. 가상 머신은 Android 애플리케이션을 기반으로 구축됩니다. Android 애플리케이션은 Java를 사용하여 개발되고 가상 머신에서 실행됩니다.

다양한 애플리케이션의 성능 최적화를 유연하게 실현할 수 있습니다

Wang Chenglu는 Ark 컴파일러의 세 번째 하이라이트는 다양한 애플리케이션의 성능 최적화를 유연하게 실현할 수 있다는 점이라고 말했습니다.

기존 Android 컴파일 코드의 대부분은 가상 머신 환경에서 실행되며, 가상 머신 생성은 동일한 "템플릿" 세트에서 이루어지기 때문에 심층적인 최적화를 수행하기 어렵다고 말했습니다. 애플리케이션마다 최적화가 다릅니다. 요구 사항 비교 다음으로, 각 응용 프로그램은 서로 다른 응용 프로그램에 최적화된 기계 코드를 형성하기 위해 자체 계획을 컴파일하고 최적화합니다. 더 나은 애플리케이션을 만들 수 있는 기회는 더 이상 Android 가상 머신의 한계로 인해 제한되지 않습니다.”

PHP 관련 기술 기사를 더 보려면

PHP 그래픽 튜토리얼 칼럼을 방문하여 알아보세요!

위 내용은 Ark 컴파일러란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.