상세 컨텐츠

본문 제목

Julia언어 TTFP 문제

Julia

by KimUH 2025. 3. 19. 06:24

본문

Julia언어는 개발 편의성을 위해서 동적 언어 문법을 가지고 있지만, 빠른 연산 성능을 위해서 컴파일 과정을 거친다.

그래서, 언어 구문만 보면 R, Python처럼 느껴지지만, 막상 써보면 Java/C# 처럼 실행 전에 컴파일이 끝날 때까지 대기해야 한다.

이 대기 시간 문제를 TTFP(Time to First Plot : 첫 그래프 그릴 때까지 걸리는 시간)문제라고 칭한다.

 

Julia언어 버전 1.9부터는 외부 라이브러리 패키지를 설치할 때, 미리 컴파일한 후 결과물를 저장해 놓는 방식으로 실제 사용 시 컴파일에 소요되는 시간을 상당히 단축시켰다.

(여전히, R/Python 인터프리터 언어에 비하면 느리긴 하다.)

 

Julia언어 서적을 읽던 중, 버전 1.7에서 TTFP를 측정한 예제를 봤다.

첫 그래프를 그리는 데 7.4초 걸린다. (패키지 불러오는 데 4.7초 + 실제 첫 그래프 생성하는 데 2.5.초)

(이미 컴파일을 마친 후) 컴파일이 필요없는 2번째 그래프는 매우 빠르게 생성된다.

 

동일한 작업을 버전 1.10에서 실행한 결과를 확인해 봤다.

첫 그래프를 그리는 데 1.8초 걸린다. (패키지 불러오는 데 1.73초 + 실제 첫 그래프 생성하는 데 0.08초)

버전 1.7과 1.10을 비교하면 TTFP가 1/4이하로 단축되었다. (1.8초  vs 7.4초)

 

2번째 그래프를 그리는 데 걸리는 시간은 비슷하니까, CPU 성능 차이로 인한 영향은 미미하다고 유추할 수 있다.

이제 Julia언어의 TTFP문제는 참을만한 수준으로 개선된 게 아닐까 싶다.

 

DaemonMode.jl 패키지를 사용하면 TTFP문제는 더욱 개선된다.

(Julia언어 체감 속도 향상 : https://kmuh.tistory.com/173)

 

 

관련글 더보기