PYTHON · 성능
Cython 소개
Cython으로 Python 코드를 C로 컴파일하여 성능을 극적으로 향상시키는 방법의 개요입니다.
성능고급CythonC 확장컴파일성능
핵심 설명
Cython으로 Python 코드를 C로 컴파일하여 성능을 극적으로 향상시키는 방법의 개요입니다.
Python code
# Cython 코드 예제 (.pyx 파일)
cython_code = """
# fib.pyx - Cython 코드
def fib_python(n):
a, b = 0, 1
for _ in range(n):
a, b = b, a + b
return a
# C 타입 선언으로 최적화
def fib_cython(int n):
cdef long long a = 0, b = 1
cdef int i
for i in range(n):
a, b = b, a + b
return a
# 타입 선언이 핵심!
# int, long, double → C 네이티브 타입
# cdef → C 전용 함수 (Python에서 호출 불가)
# cpdef → C + Python 양쪽에서 호출 가능
"""
print(cython_code)
# 빌드 방법
setup_code = """
# setup.py
from setuptools import setup
from Cython.Build import cythonize
setup(
ext_modules=cythonize("fib.pyx"),
)
# 빌드: python setup.py build_ext --inplace
# 사용: from fib import fib_cython
"""
print(setup_code)
# 순수 Python 대안
import time
def fib_pure(n):
a, b = 0, 1
for _ in range(n):
a, b = b, a + b
return a
start = time.perf_counter()
result = fib_pure(100000)
elapsed = time.perf_counter() - start
print(f"Python fib(100000): {elapsed:.4f}초")
print(f"결과 자릿수: {len(str(result))}")
print("Cython은 보통 10-100x 빠릅니다")학습 팁
Cython에서 가장 큰 성능 향상은 루프 내 변수에 cdef 타입 선언을 추가하는 것입니다.
주의할 점
Cython은 빌드 단계가 필요하여 배포가 복잡해집니다. 성능이 정말 필요한 핫스팟에만 적용하세요.
자주 묻는 질문
Cython 소개란 무엇인가요?
Cython으로 Python 코드를 C로 컴파일하여 성능을 극적으로 향상시키는 방법의 개요입니다.
Cython 소개 학습 시 주의할 점은 무엇인가요?
Cython은 빌드 단계가 필요하여 배포가 복잡해집니다. 성능이 정말 필요한 핫스팟에만 적용하세요.
Continue Learning
Python 학습을 이어가세요
총 200개의 독립 HTML 학습 문서 중 하나입니다. 각 문서는 고유 URL과 canonical 메타데이터를 가집니다.