Android Weekly

Android Weekly #-597 "안드로이드 메모리 개선 - Runtime 업데이트"

베블렌 2023. 12. 12. 09:26

11월 3주차에는 안드로이드 메모리 개선 - 최신 Android Runtime 업데이트에 대한 글입니다.

 

https://android-developers.googleblog.com/2023/11/the-secret-to-androids-improved-memory-latest-android-runtime-update.html

 

The secret to Android's improved memory on 1B+ Devices: The latest Android Runtime update

Improving Android Runtime (ART) improves the user experience better. With the new release of ART, we estimate to save users 47 petabytes globally.

android-developers.googleblog.com

 

 

소개

  • 이 글은 최신 Android Runtime (ART) 업데이트에 대해 설명합니다. ART는 Java나 Kotlin으로 작성된 앱과 시스템 서비스의 Dalvik 바이트코드를 실행하는 안드로이드의 핵심 구성 요소입니다.
  • 이 업데이트는 코드 크기를 줄이면서 성능에 영향을 주지 않는 최적화에 중점을 두고 있습니다.
  • ART는 사용자 경험을 전반적으로 개선하고, 앱의 성능을 향상시키는 중요한 역할을 합니다.

 

내용

  • ART 최적화의 중요성: ART는 앱의 실행 속도와 메모리 사용을 최적화하여 전체 안드로이드 시스템의 효율성을 향상시킵니다.
  • 코드 크기 감소: 새로운 ART 릴리스를 통해 사용자당 약 50-100MB의 메모리 절약이 가능하며, 이는 전 세계적으로 47-95 페타바이트의 절감 효과로 이어집니다.
  • 최적화 컴파일러 101: ART는 DEX 포맷을 네이티브 코드로 컴파일하는데, 이 과정에서 다양한 최적화 기술을 사용합니다. 중간 표현(IR)을 생성하고, 이를 기반으로 여러 최적화 단계를 거칩니다.

주요 최적화 기법

  • 쓰기 장벽 제거: 쓰기 장벽은 객체가 수정된 후 가비지 콜렉터(GC)에 의해 검사되는 것을 추적합니다. 불필요한 쓰기 장벽을 제거하여 코드 크기를 줄입니다.
    코드 크기를 약 0.8% 줄입니다.
  • 암묵적 중단 체크: 멀티스레드 환경에서 스레드 실행을 일시 중지할 수 있는 안전점입니다. 이 최적화는 테스트와 분기 명령어 없이 로드만 수행하여 코드 크기를 줄입니다.
    * 코드 크기를 약 1.8% 줄입니다.
  • 반환값 합치기: 메서드의 여러 반환 지점을 하나로 합치면 추가적인 출구 프레임을 제거하여 코드 크기를 줄일 수 있습니다.
    * 코드 크기를 약 1% 줄입니다.
  • 기타 최적화 개선 사항: 코드 싱킹, 루프 최적화, 불필요한 try 블록 제거, SimplifyAlwaysThrows, Load Store Elimination 등 다양한 최적화 방법이 개선되었습니다.
    * 다른 최적화 개선 사항들은 전체적으로 코드 크기를 약 5.7% 줄입니다.
// 코드 싱킹 최적화 예시
try {
    val result = someOperation()
    if (result) {
        // 복잡한 로직
    } else {
        throw Exception("Error")
    }
} catch (e: Exception) {
    // 예외 처리
}

 

위의 예시에서 someOperation()이 실패할 경우, 이후의 복잡한 로직은 실행되지 않으며, 바로 예외 처리로 넘어갑니다. 이를 통해 불필요한 코드 실행을 방지하고 메모리를 절약할 수 있습니다. (평범한 Try - catch문)

* 전체적인 최적화 효과: 이러한 모든 최적화를 종합할 때, 전체적으로 약 9.3%의 코드 크기 감소가 달성되었습니다. 이는 안드로이드 기기에서 중요한 메모리 절약을 의미하며, 개발자들에게 더 효율적인 앱 개발 환경을 제공합니다.

 

 

정리

이 최신 ART 업데이트는 안드로이드 개발자들에게 중요한 의미를 지닙니다. 효율적인 메모리 관리와 성능 개선을 통해 사용자 경험을 크게 향상시킬 수 있으며, 10억 대 이상의 기기에 적용되어 전 세계적으로 상당한 메모리 절감 효과를 가져올 것으로 기대됩니다. 이러한 개선을 통해 안드로이드 앱 개발자들은 더 나은 애플리케이션을 제공할 수 있게 되었습니다.

지속적인 런타임 업데이트 개인적으로 너무 좋습니다.

 

 

이번주 추가 참고할기사 : Migration from Kapt to KSP

https://proandroiddev.com/migration-from-kapt-to-ksp-685715de214a

 

Migration from Kapt to KSP

Kapt is now in maintenance mode so why not migrate to KSP ?

proandroiddev.com

 

 

 

 

 

https://androidweekly.net/

 

Android Weekly - Free weekly Android & Kotlin development newsletter

Android Weekly - Free weekly Android & Kotlin development newsletter

androidweekly.net