백준에서 파이썬으로 문제를 풀고 제출하러 들어가면 python3와 pypy3가 보인다. 처음에는 당연히 다른 것인 줄 알고 python3만 선택했으나 알아보니 둘 다 파이썬을 기반으로 하고 있음을 알게 되었다.
그래도 어떤 것을 선택해야 할 지 확신이 서지 않기 때문에 살짝쿵 알아보려고 한다.
python3
- 가장 일반적인 인터프리터인 CPython을 사용한다. 이름에서 알 수 있듯이 Python을 C와 Python으로 작성된 Python 인터프리터인 것이다. CPython은 python코드를 있는 그대로 실행시키는 것이 아닌 바이트코드로 컴파일 후 실행한다. 따라서 컴파일러라고도 할 수 있는 것이다.
.py 실행 -> .pyc 생성 -> .pyc 인터프리트
- CPython은 오픈소스 형식으로 관리되며 혹시 에러가 발생하거나 정말 관심이 있다면 뜯어보는 것도 좋은 방법이다 ㅎㅎ
- 능력자분들을 위해 깃허브 주소를 남겨본다. (github.com/python/cpython)
pypy3
- 앞선 CPython과는 다르게 이름에서 느껴지듯이 Python만을 이용하여 구현한 인터프리터이다.
- JIT(Just-In-Time) 컴파일러라고 한다. 간단히 말해 프로그램을 실행함과 동시에 바로 컴파일하는 방식이다. 그렇기 때문에 순수한 파이썬 코드일 경우 pypy의 실행속도가 CPython에 비해 훨씬 빠르다.
- 하지만 장점만 있는 것은 아니다. 메모리 사용량이 python에 비해 많다고 한다.
결론
- 두 방법에 대해 간단히 살펴보았다. 물론 각자의 장,단점이 확실히 존재한다. 시간이냐 메모리냐를 선택하는 느낌이긴 한데 상황에 맞게 적절히 선택하면 된다고 생각한다.
'개인 공부 > 나의 궁금증' 카테고리의 다른 글
[궁금증] 다국적 기업의 임원 직책명 정리 (0) | 2021.06.25 |
---|---|
[Database] SQL vs NoSQL (0) | 2021.06.24 |
[파이썬/Python3] 입력 받는 방법(input() vs sys.stdin.readline()) (0) | 2021.04.05 |