coding Tips & Tricks

python) 백준 python3 vs PyPy3

mhe1239 2024. 11. 26. 19:10

백준을 풀때에 언어 선택지 중에 python3의 경우 당연히 있는 것인데, pypy3가 선택지로써 있다.

python이라는 언어는 누구나 알 것이고 그러면 pypy라는 언어가 있는것일까? pypy라는 언어는 존재한다.

pypy는JIT 컴파일러를 통해 실행 속도를 최적화하는 기능을 추가한 인터프리터 언어이다.

인터프리터 언어 한줄 한줄 읽고 실행하고 일고 실행하고 반복ㆍ ㆍ 호환성은 문제없음
인터프리터언어 but, 
JIT(Just-In-Time) 컴파일러가 있는
JIT(Just-In-Time) 컴파일러를 통해 프로그램 실행 중에 반복적으로 실행되는 코드를 분석하고, 실행 도중에 네이티브 머신 코드로 변환하여 성능을 향상시킴

즉, 반복 작업이 있는 코드 실행시 유용하다.
NumPy, pandas와 같은 확장 모듈이 없음

PyPy3는 JIT 컴파일 과정을 거치기 때문에 프로그램 시작 시 약간의 오버헤드가 발생한다.
때문에 간단한 코드(예: 입력 몇 줄 처리 후 간단한 계산)에서는 Python3가 더 빠르게 동작한다.

PyPy3를 쓰는 것이 유용한 경우

① 반복문이나 계산이 많아 시간 복잡도가 높은 문제

② 시간 초과로 인해 Python3로는 해결이 어려운 경우

표준 라이브러리만 사용하는 문제(sys는 포함됨)

python3를 쓰는 것이 유용한 경우  

코드가 간단하고 실행 시간이 중요하지 않은 문제.
 C 확장 모듈이나 메모리 최적화가 중요한 경우.