파이썬?

문법이 매우 쉬워서 작성하기에 간단하기 때문에 초보자들이 처음 프로그래밍을 배울 때 추천되는 언어이다. 오죽하면 파이썬의 별명이 "실행할 수 있는 의사 코드(Executable pseudocode)"일 정도. 실제로도 미국 공과 대학교에서 컴퓨터 프로그래밍 입문 수업으로 파이썬을 많이 사용하기도 한다. 학습용으로 좋은 언어인 동시에 실사용률과 생산성도 높은 강력한 언어인 셈 by 나무위키

 


그렇다 파이썬의 가장 큰 장점은 직관적이다.

수도 코드와 가장 유사하기 때문에 알고리즘 문제를 풀 때 많이들 이용하는 언어이다.

근데 이런 파이썬을 이용하다보면 가장 큰 문제는 느린 속도이다.

https://dl.acm.org/doi/abs/10.1145/3136014.3136031

 

Energy efficiency across programming languages: how do energy, time, and memory relate? | Proceedings of the 10th ACM SIGPLAN In

ABSTRACT This paper presents a study of the runtime, memory usage and energy consumption of twenty seven well-known software languages. We monitor the performance of such languages using ten different programming problems, expressed in each of the language

dl.acm.org

에 따르면 c언어에 비해 약 72배 정도 느리다고 한다.

왜 느린가? 를 얘기하자면 파이썬은 인터프리터 방식으로 코드를 한줄 씩 바로바로 해석한다.

그에 비해 c언어는 전체를 컴파일 한 후 통째로 실행시켜버린다.

이에 관한 자세한 내용은 아래블로그를 참고하길 바란다.

https://hitzi.tistory.com/31

 

파이썬이 느린 이유

파이썬은 C언어나 기타 저급 언어에 비해서 느리다는 소리를 많이 들었다. 예전에 왜 그런걸까 궁금해서 검색해보았더니, 한 질답 사이트에서 파이썬은 인터프리터 언어고, 저급언어는 컴파일

hitzi.tistory.com

각설하고, 그래서 pypy 뭔데 빠르냐? 이게 궁금했다. 사실 학교 동기가 크림이라는 회사에 지원했는데 인터뷰에서 이걸 물어 봤다고 한다. 사실 나는 파이썬으로는 코딩테스트만 치고 넘어갈꺼지만 갑자기 궁금했기 때문에 찾아보았다.

답은 stackoverflow에서 간단히 찾을 수 있었다.

https://stackoverflow.com/questions/59050724/whats-the-differences-python3-and-pypy3

 

what's the differences python3 and pypy3

Today I knew that pypy3 is faster than python3 for input() time through any algorithm problem. Performance differences were almost as much as 12 times. Why is there such a difference?

stackoverflow.com

 

Kindly check this, when we speak of Python programming language we often mean not just the language but also the implementation. Python is a specification for a language that can be implemented in many different ways.

The default implementation of the Python programming language is Cpython(assuming python3 you mean Cpython). As the name suggests Cpython is written in C language. Cpython compiles the python source code into intermediate bytecode, which is executed by the Cpython virtual machine.

Jython is an implementation of the Python programming language that can run on the Java platform. Jython programs use Java classes instead of Python modules. Jython compiles into Java byte code, which can then be run by Java virtual machine.

PyPy If you want your code to run faster, you should probably just use PyPy. — Guido van Rossum (creator of Python) Python is a dynamic programming language. Python is said to be slow as the default CPython implementation compiles the python source code in bytecode which is slow as compared to machine code(native code). Here PyPy comes in.

PyPy is an implementation of the Python programming language written in Python. The Interpreter is written in RPython (a subset of Python). PyPy uses Just In Time (JIT) compilation. In simple terms, JIT uses compilation methods to make the interpreter system more efficient and fast. So basically JIT makes it possible to compile the source code into native machine code which makes it very fast. PyPy also comes with default support for stackless mode, providing micro-threads for massive concurrency. It is said to be approximately 7.5 times faster than Cpython.

 

그래서 오늘의 결론

 

파이파이(PyPy)는 파이썬으로 작성된 파이썬 프로그래밍 언어이다. 인터프리터는 RPython(파이썬의 하위 집합)으로 작성된다. PyPy는 JIT(Just In Time) 컴파일을 사용한다. JIT는 컴파일 방법을 사용하여 시스템을 더 효율적이고 빠르게 만든다. 따라서 기본적으로 JIT는 소스 코드를 네이티브 머신 코드로 컴파일하는 것이 가능하다.

그러한 이유로 python에 비해 pypy가 더 빠르다.


 

*컴파일과 인터프리터 방식의 차이점

https://chayan-memorias.tistory.com/96

 

프로그래밍 언어론 1-4강. Compilation(편집) vs Interpretation(해석)

[Pure Compilation(컴파일) 실행구조] (컴파일러 : 컴파일 통제 위치(locus of control) , 목표 프로그램 : 자체적(목표 프로그램) 실행 통제 위치) : 컴파일러가 고레벨의 원본 프로그램을 목표 프로그램으

chayan-memorias.tistory.com

 

 

+ Recent posts