File tree Expand file tree Collapse file tree 1 file changed +26
-0
lines changed
Expand file tree Collapse file tree 1 file changed +26
-0
lines changed Original file line number Diff line number Diff line change 1+ ### 의문점: ` python3 ` 과 ` pypy3 ` 의 차이점은 무엇일까??
2+
3+ - 결과부터 언급을 하자면 ` Python3 ` 과 ` pypy3 ` 은 언어와 문법은 동일하지만 전자는 ** JIT(Just-In Time)** 컴파일 방식을 도입하였고, 그렇기 때문에 ` pythn-on3 ` 에 비해서 실행 속도가 빠른 것이다.
4+ - ** JIT 컴파일** 은 프로그램을 실행하기 전에 컴파일을 하지 않고, 프로그램을 실행하는 시점에서 필요한 부분을 그때 그때 컴파일 한다.
5+ - 따라서 자주 쓰이는 코드를 cache에 저장하여 인터프리터 언어의 느린 속도를 개선할 수 있다.4
6+ - 물론 간단한 코드에서는 ` python3 ` 이 메모리, 속도 모든 측면에서 우세하고 복잡한 코드에 한해서 ` pypy3 ` 이 우세하기 때문에 주의깊게 써야 한다.
7+
8+
9+ - 기본적으로 ` python3 ` 은 인터프리터이면서 컴파일러 언어이며, 개발자가 작성한 python code를 ** 컴파일** 하여 bytecode로 바꾸고 interpreter(=가상머신)이 코드가 동작하게 실행한다.
10+
11+ #### 컴파일 언어 vs 인터프리터 언어
12+ 1 . 컴파일 언어
13+ - 개발자가 작성한 source code를 모두 기계어로 바꾼 후 가상 머신에 넣어 기계어 코드를 실행한다.
14+ - source code를 기계어로 compile하는 과정에서는(=` C ` 에서 build하는 과정) interpreter 언어에 비해 시간이 소요되나, 런타임 상황에서는 이미 source code가 기계어가 되어있어 빨리 실행이 가능하다.
15+ ex) ` C ` , ` Java ` , ` C++ ` , ` C# `
16+ 2 . 인터프리터 언어
17+ - 한줄씩 일ㄱ어 바로 명령어를 실행한다.
18+ - 런타임 상황에서 오히려 한번씩 읽기 때문에 그때 실행 속도가 느리다.
19+ - 물론 build를 할 필요는 없지.
20+ ex) ` Python ` , ` Ruby ` , ` SQL ` , ` JavaScript ` ` R `
21+
22+ #### ` Python3 ` vs ` CPython `
23+ - ` Python3 ` 이 인터프리터 + 컴파일러 언어라고 했다.
24+ - 그 이유는 ` Python ` 과 ` C ` 로 구성된 언어이기 때문이다.
25+ - 엄밀히 말하면 ` python ` 이 ` C ` 로 구성되어 있고 우리는 ` CPython ` 이라는 python 구현체를 사용한다.
26+ - 즉, ` CPython ` 이 인터프리터이면서 컴파일러이다.
You can’t perform that action at this time.
0 commit comments