안드로이드 앱은 달빅(Dalvik)이라는 런타임 상에서 돌아간다. 이는 자바로 작성된 안드로이드 앱을 실행시켜주는 가상 머신이다. 수많은 다양한 칩셋과 하드웨어 상에서 동일한 앱이 돌아갈 수 있는 것은 바로 이 가상 머신 덕분이다. 자바로 짠 앱은 바이트코드로 컴파일되어 배포, 설치되고, 매번 앱이 실행될 때마다 달빅 가상 머신에서 JIT 컴파일러를 통해 실행 가능한 코드로 바뀌게 된다. ART(Android RunTime)는 구글이 새로 개발한 안드로이드 런타임으로, 킷캣에 포함되어 있다. 넥서스 5의 개발자 모드에서, 달빅 대신 ART를 런타임으로 선택할 수 있다. ART는 구글이 달빅을 대체하기 위해 완전히 새로 개발한 런타임으로, JIT 대신 AOT (Ahead Of Time)이라는 컴파일러를 사용해, 매번 앱 실행시가 아니라 앱을 설치할 때 실행 가능한 코드로 컴파일해 놓는다. 메모리를 더 차지하게 되지만, 대신 앱 구동이 빨라지고 더 부드럽게 돌아간다. 구글은 ART가 아직 안정화되지 않은 실험 버전이며, 달빅을 완전히 대체하기 전에 먼저 개발자와 제조사들로부터 피드백을 받기 원한다고 밝혔다. 벤치마크 결과는 ART 사용시 대부분 앱 구동시간이 절반으로 줄어들고, 멀티코어 프로세스를 효율적으로 사용해 소모전력도 적어지는 것으로 보인다.
tN insight: 구글에서 새로 개발한 ART는 안드로이드 4.4 킷캣 핵심 중 하나인 저사양 기기 (512MB 램) 지원과 일맥상통하는 점이 있다. HW 사양이 높은 기기에서는 앱 구동속도가 크게 문제되지 않지만, 저사양 모델에서는 이러한 개선이 눈에 띄게 큰 차이를 보일 수 있기 때문이다.
벤치 마크 결과 출처나 데이터를 알 수 있을까요?
컴파일링 타임을 줄였다는 이야기군요.
안녕하세요. 원문 기사에도 벤치마크 관련 상세한 내용은 없네요. 하지만 주변에 넥서스 5 가지고 계신 분이 ART로 바꿔서 사용해 보니 벤치마크에 의존할 필요도 없이 체감할 수 있는 성능 향상이 있다고 합니다.
답글 감사합니다
기사에 구동속도 절반과 전력 소모라고 구체적으로 언급되어 있길래
구체적인 벤치가 있는 것 같아서 문의드렸습니다^^;;
아마 달빅 opcode보다 훨씬 많은 메모리를 요구할 것이라고 추측됩니다.
성능에 굳이 불편함이 없으면
모바일에서는 그다지…….
메모리가 램을 말하는게 아니라 용량 말하는건데…