[Python] 성능 병목을 찾는 방법 '프로파일링'
·
Python
LLM 기반 서비스를 개발하다 보면 한 번쯤 이런 상황을 만납니다. 사용자가 질문을 입력했는데 응답까지 15초가 걸립니다. 느리다는 건 알겠는데 왜 느린지는 모르는 상황입니다. LLM이 문제일까요, 벡터 DB 검색이 문제일까요, 아니면 다른 곳일까요?이럴 때 필요한 것이 프로파일링(Profiling) 입니다. 이 글에서는 프로파일링이 무엇인지, 그리고 실무에서 자주 사용하는 두 도구인 py-spy와 pyinstrument를 어떤 상황에서 어떻게 활용하는지 정리합니다.프로파일링이란 무엇인가프로파일링은 프로그램이 실행되는 동안 시간과 자원이 어디에서 얼마나 소비되는지 측정하는 과정입니다. 단순히 전체 실행 시간을 재는 것이 아니라, 어느 함수가 얼마나 오래 실행됐는지, CPU를 얼마나 사용했는지, 어디서 대..