백준을 풀때에 언어 선택지 중에 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 확장 모듈이나 메모리 최적화가 중요한 경우.
'coding Tips & Tricks' 카테고리의 다른 글
C++) ios_base::sync_with_stido(0); cin.tie(0); cout.tie(0);이 무엇인가? (0) | 2024.12.09 |
---|---|
coding tip) 웹으로 코딩 잠깐 작업하기 (0) | 2024.12.02 |