Search

bc4. [entry] title: python 의 속도를 개선하는 방법들

생성
♻️ prev note
🚀 next note
♻️ next note
bc4.1. title: 아무리 저수준에서 최적화된 라이브러리이더라도 python 의 객체를 생성하는 일 자체에서 오는 오버헤드가 훨씬 영향이 클지도 모른다.
bc4.2. title: JIT 컴파일(‣) 도우미 numba 는 python 의 속도를 향상시킬 수 있는 가장 린한 방법이다.
14 more properties
논하는 세부 주제들 개요 MAX 25 links
Python 은 정말 정말 느리다.
파이썬의 객체 생성 오버헤드는 상당히 크다.
컴파일 언어가 주는 이점을 적극적으로 사용하면 문제를 우회할 수 있다.
크게 두 가지, JIT 기반의 방법과 AOT 기반의 방법이 있다(참고8).
Ahead of Time, AOT : Python 에서 C 등 로우레벨에서 컴파일된 함수를 호출해 사용하는 방식을 의미한다.
numpy
numpy 는 대형행렬 연산 등에 최적화되어 있고, 작은 규모의 연산같은 경우 python 구현보다 느리다는 단점이 있다고 한다(참고1,2).
그렇다고 꼭 사용하지 못할 것은 없다. 연산해야 할 값들을 모두 모아 대형 배열로 만들어버리는 방법이 있을 수 있다.
Cython, pybind11(참고3)
cython 은 저수준 언어의 사용을 불편해하는 파이썬 유저를 돕기 위해 설계됐고, pybind 는 저수준 언어 사용자가 python 에서 사용할 수 있는 함수를 만드는 일을 잘 할 수 있도록 돕기 위해 설계됐다(참고4,5).
기존 개요가 마음에 들지 않아서 엔트리를 다음과 같이 변경한다.
참고
7.
.