파이썬 3.13 성능 향상 완전 정복: Free-Threading | 요즘IT
요즘IT
Python 3.13에 도입된 GIL이 비활성된 모드인 free-threded의 성능 개선 부분을 정리한 글의 번역 글입니다.
Python에는 Global Interpreter Lock이란게 있어서 멀티 스레드를 사용하더라고 전역 락으로 하나의 스레드만 Python 코드를 실행할 수 있기 때문에 Python의 특징같으면서도 오랫동안 성능문제를 얘기할 때 GIL이 얘기되곤 했습니다.
오랫동안 GIL을 제거하는 방법에 대한 논의가 이루어졌고 이 모드의 이름이 fred-threaded라고 이름이져서 3.13부터 도입되었습니다.
이를 비교하기 위해 Google의 PageRank 알고리즘을 간단히 Python으로 구현하고 이를 단일 스레드, 멀티 스레드, 멀티 프로세스 3가지 버전으로 만들어서 3.12와 3.13에서 성능이 어떻게 나오는지 비교했습니다.
결과를 보면 GIL이 없는 멀티 스레드 구현이 가장 빠른 성능을 보여주으며 새로운 빌드 옵션을 활성화하지 않으면 3.12와 3.13은 비슷한 성능이 나왔고 멀티 프로세스 구현은 단일 스레드보다도 느린 것으로 나타났습니다.
아직은 도입 초기이기 때문에 free-threaded 빌드에서 GIL과는 상관없이 성능 저하가 있다고는 하는데 다음 버전에서 개선될 예정이고 이 결과만 보아도 free-thread가 멀티프로세스 구현의 대안이 될 가능성을 충분히 보여주고 있습니다.
https://yozm.wishket.com/magazine/detail/2872/
다음 내용이 궁금하다면?
이미 회원이신가요?
2024년 12월 26일 오전 7:32