Logo 파이썬

Cython — 파이썬을 C 속도로

야옹이 | 04.27 | 조회 82 | 좋아요 0

Cython은 「파이썬 코드에 타입을 명시해 C 수준 속도로 컴파일」하는 도구입니다.

NumPy·pandas·spaCy 같은 큰 라이브러리의 핫스팟이 Cython으로 작성.

순수 파이썬보다 10~100배 빠를 수 있습니다.



기본 사용.

.pyx 파일 작성 — def func(int n): return n * 2.

setup.py로 컴파일 → C 확장 모듈 생성.

파이썬에서 일반 모듈처럼 import.

사용감은 파이썬 그대로, 속도는 C.



타입 명시가 핵심.

cdef int n = 0 — C 정수.

cdef double[:] arr — NumPy 배열의 메모리 뷰.

타입을 명시한 부분만 C 수준이 되고, 명시 안 한 부분은 일반 파이썬 속도.



GIL 풀기.

with nogil: ...

— 그 블록은 GIL 없이 실행.

멀티스레드 진정 병렬 가능.

단, 그 안에서는 파이썬 객체 못 만지고 C 자료구조만.



트레이드오프.

빌드 단계 추가, 디버깅 어려움, 코드가 「파이썬 같은데 다름」.

일반 코드는 그냥 파이썬, 핫스팟(전체 시간의 80% 차지)만 Cython화가 정석.

또는 Cython 대신 Numba(JIT)도 비슷한 효과.




한 줄 요약


Cython은 타입 명시한 파이썬을 C로 컴파일해 10~100배 가속.

nogil로 진정 병렬.

빌드·디버깅 비용 있어 핫스팟만 Cython화가 정석.




더 알아볼 것


- mypyc — mypy 타입을 컴파일

- Numba — JIT 대안

- Rust + PyO3 — 모던 대안

공유하기
목록보기

목록보기
신고하기

신고 사유를 선택해 주세요.