이 글은 "파이썬 알고리즘 인터뷰 (박상길 지음)"을 읽고 주관적으로 요약한 글입니다.
- GIL : Global Interpreter Lock
- 파이썬이 느린 주요 원인
- 원인
- 파이썬 최초의 공식 구현체 CPython의 개발 초기에
- 번거로운 동시성 관리를 편리하게
- 스레드 세이프를 하지 않은 CPython의 메모리 관리를 쉽게 하기 위해
- 스레드 세이프
- 멀티스레드 프로그래밍에서 어떤 함수 / 변수 / 객체가 여러 스레드로부터 동시에 접근이 일어나도 프로그램의 실행에 문제가 없음을 의미
- 전역 변수 등 공유 자원, Side Effect 등
- GIL은 하나의 스레드가 자원을 독점하는 형태
- 멀티 코어가 당연한 현재에는 하나의 스레드가 자원을 독점하는 제약은 성능에 치명적임
- PriorityQueue와 같은 시도에도 불구하고, 과거부터 GIL에 의존하는 형태로 구현된 기능들이 대부분이라 극복이 쉽지 않음
'책읽기' 카테고리의 다른 글
[파이썬 알고리즘 인터뷰][해시테이블] 해시맵 디자인 (0) | 2021.07.27 |
---|---|
[파이썬 알고리즘 인터뷰] 11장 - 해시 테이블 (0) | 2021.07.27 |
[파이썬 알고리즘 인터뷰][데크/우선순위큐] k개 정렬 리스트 병합 (0) | 2021.07.24 |
[파이썬 알고리즘 인터뷰][데크/우선순위큐] 원형 데크 디자인 (0) | 2021.07.24 |
[파이썬 알고리즘 인터뷰] 10장 - 데크, 우선순위 큐 (0) | 2021.07.24 |