python-performance-optimization은(는) 무엇을 하나요?
cProfile, 메모리 프로파일러 및 성능 모범 사례를 사용하여 Python 코드를 프로파일링하고 최적화합니다. 느린 Python 코드를 디버깅하거나, 병목 현상을 최적화하거나, 애플리케이션 성능을 개선할 때 사용하세요.
사용 방법
이 스킬은 성능 병목 현상을 식별하고 최적화하기 위한 안내를 제공합니다. 프롬프트에 최적화하려는 Python 코드의 관련 부분이나 설명을 포함하세요.
예시 사용 사례
- 함수 프로파일링:
cProfile.run('my_function()')을 사용하여 함수 실행 시간을 측정합니다. - 메모리 프로파일링:
memory_profiler를 사용하여 함수별 메모리 사용량을 분석합니다. - 최적화 제안: 프로파일링 결과를 바탕으로 구체적인 코드 최적화를 제안받습니다.
- 벤치마킹:
timeit모듈을 사용하여 서로 다른 구현체의 성능을 비교합니다.
지원되는 도구
cProfile(표준 라이브러리)profile(표준 라이브러리, 순수 Python)timeit(표준 라이브러리)memory_profiler(pip 패키지)line_profiler(pip 패키지)py-spy(샘플링 프로파일러, pip 패키지)snakeviz(시각화, pip 패키지)tuna(시각화, pip 패키지)
예제 코드
import cProfile
import pstats
def my_function():
# 최적화할 코드
total = sum(i * i for i in range(1000000))
return total
# 프로파일링 실행
cProfile.run('my_function()', 'profile_stats')
# 결과 분석
p = pstats.Stats('profile_stats')
p.sort_stats('cumtime').print_stats(10)