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)
DataFrame에서 칼럼 선택하기 (0) | 2025.03.22 |
---|---|
Julia언어 MKL 라이브러리. (0) | 2025.03.20 |
Julia언어 성능 최적화 - 메모리 할당 최소화 (0) | 2025.03.18 |
책 리뷰 : Julia High Performance (2) | 2025.03.17 |
Julia언어 DataFrame은 Type-unstable (0) | 2025.03.17 |