ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • AOT(Ahead Of Time) Compiler
    개발/기술 2021. 11. 26. 20:30

     

    JIT 컴파일러가 바이트코드를 런타임에 기계어로 바꾼다면 AOT는 실행 전에 바이트코드를 기계어로 바꾸는 컴파일러다. 실행 전에 모두 기계어로 변환되기 때문에 JIT 컴파일러가 런타임에 컴파일 하기 때문에 발생하는 성능 이슈가 생기지 않고 거의 네이티브의 성능을 낼 수 있게 된다. 

     

    AOT 컴파일러가 JIT 컴파일러의 정반대의 원리기 때문에 JIT 컴파일러의 장점은 AOT 컴파일러의 단점이된다. AOT 컴파일러를 사용하면 실행 전에 전체 파일을 빌드해야 하기 때문에 빌드 속도가 느려진다. 설치할 때도 JIT 컴파일러를 사용하는 경우 바이트 코드만 받으면 되는 반면 AOT 컴파일러를 사용하면 기계어로 번역하는 작업까지 포함되기 때문에 느리다. 그리고 JIT 컴파일러의 장점이었던 Hot Reload 기능도 사용할 수 없다.

     

    장점과 단점이 뚜렷하게 구분되기 때문에 플러터에서 사용되는 Dart VM의 경우에는 JIT 와 AOT 방식을 모두 제공하고 있다. 개발 단계의 경우 JIT 컴파일러를 이용해 수정사항이 빠르게 반영 될 수 있도록 만들고 프로덕션으로 배포하는 경우에는 AOT 방식으로 빌드해서 런타임 성능을 훼손하지 않도록한다. 

    '개발 > 기술' 카테고리의 다른 글

    Graph Database - neo4j  (0) 2022.01.24
    log4j 이슈 살펴보기  (1) 2021.12.13
    JIT(Just In Time) Compilation  (0) 2021.11.26
    명령형 UI vs 선언형 UI  (0) 2021.11.26
    Kafka - Event Streaming Platform  (0) 2021.10.13

    댓글

Designed by Tistory.