1. 개념 요약
- Python3 (CPython)
- 공식 Python 구현체로, 소스 코드 → Bytecode로 컴파일한 뒤 인터프리터에서 실행.
- PyPy3
- Python3 문법을 따르면서 JIT 컴파일러(실행 중 기계어 번역)를 탑재한 구현체.
- 자주 쓰이는 코드 경로를 미리 컴파일해 두어 반복 연산에서 속도 향상.
2. 배경 지식
- 컴파일 언어 vs 인터프리터 언어
- 컴파일 언어: 실행 전에 전체 코드를 기계어로 변환
- 인터프리터 언어: 실행 시 한 줄씩 해석하여 수행
- CPython
- Python 코드를 Bytecode로 변환 후 해석
- GIL(Global Interpreter Lock): 멀티스레드 성능 제한은 있지만, 싱글 스레드 작업에서는 문제 없음
- JIT (Just-In-Time)
- 실행 중 자주 호출되는 코드 경로를 기계어로 변환하여 캐싱
- 반복문이 많은 작업에서 큰 성능 향상을 기대할 수 있음
3. 상세 설명
Python3 (CPython) 특징
- 메모리 효율: 단순 애플리케이션이나 스크립트에서는 메모리 사용량이 더 적음
- 호환성: C 확장 모듈(Numpy, Pandas 등)을 공식적으로 지원
PyPy3 특징
- 속도: 반복, 재귀 호출 등 계산 중심 작업에서 CPython 대비 더 빠름
- 메모리 과다 사용 가능성:
- JIT 캐시와 가비지 컬렉터(Generational GC) 때문에 메모리 소비 증가
- 재귀가 많거나 메모리 제한이 엄격한 환경에서는 오히려 불리할 수 있음
4. 참고 자료 및 링크