본문 바로가기

백엔드/파이썬

python3와 pypy의 차이

반응형

**백준에서 문제를 풀던 중, 난관에 봉착 !!

언어에 따라서 성공과 실패 여부가 갈리기에, 그 이유를 알고자 포스팅을 결심했다.

 

 

 

 

 

** pypy는 기존의 python3의 실행시 시간이 매우 오래 걸린다는 단점을 개선하고자 JIT 컴파일 방식을 도입한 것이다.

 

우선 컴파일 언어와 인터프리터 언어의 개념을 비교해보겠다. 

 

컴파일 언어 : 소스 코드를 기계어로 컴파일(Compile time) -> 실행파일 만듦 -> 실행(Run time)

 

인터프리터 언어 : 코드를 한줄씩 읽어 가며 실행

 

 

 

이젠 파이썬의 동작 원리를 살펴보겠다. 

 

파이썬이 C로 구현되어있다고 알려져있다. 그 구현체는 CPython인데, 가장 처음 만들어진 파이썬 구현체라고 한다. CPython은 인터프리터이면서 컴파일러이다. 파이썬 코드를 바이트코드로 컴파일하여 바꾸고 그 다음 인터프리터가 실행한다. 

 

 

pypy3에서 사용하는 JIT(Just in Time) 컴파일이란 프로그램을 실행하기 전에 컴파일하는 대신, 프로그램을 실행하는 시점에서 필요한 부분들을 즉석으로 컴파일하는 방식이고, 인터프리터 언어의 성능 향상을 위해 도입하는 경우가 많다. 인터프리터에서 자주 쓰이는 코드를 캐싱하기 때문에 속도의 개선이 있다. 

 

 

 

반응형