[파이썬] 코드 프로파일링 방법과 예제

코드 프로파일링(Code Profiling)은 프로그램 실행 중에 어떤 부분이 시간을 많이 소비하는지 또는 어떤 부분이 자원을 많이 사용하는지를 분석하는 프로세스입니다. 파이썬에서 코드 프로파일링을 수행하기 위해 내장된 cProfile 모듈을 사용할 수 있습니다. 아래는 코드 프로파일링 방법과 예제입니다.

  1. cProfile 모듈을 사용한 코드 프로파일링:

    cProfile 모듈을 사용하여 코드 프로파일링을 시작합니다. 이 모듈은 함수 호출의 수, 소요 시간, 호출 횟수 등 다양한 정보를 제공합니다.

    import cProfile
    
    def example_function():
        total = 0
        for i in range(1000000):
            total += i
        return total
    
    if __name__ == '__main__':
        cProfile.run('example_function()')
위의 예제에서는 `cProfile.run()` 함수를 사용하여 `example_function()`을 프로파일링합니다. 실행 결과는 함수 호출에 대한 세부 정보가 포함된 표시됩니다.
  1. 커맨드 라인 도구를 사용한 코드 프로파일링:

    파이썬 커맨드 라인에서 -m cProfile 옵션을 사용하여 코드를 프로파일링할 수 있습니다.

    python -m cProfile script.py
    

    이 명령은 script.py 파일을 실행하고 해당 스크립트에서 호출되는 모든 함수를 프로파일링합니다.

  2. 출력 정렬 및 제한:

    cProfile의 출력을 정렬하고 표시를 제한하여 분석하기 쉽게 만들 수 있습니다. 아래는 예제입니다:

    import cProfile
    
    def example_function():
        total = 0
        for i in range(1000000):
            total += i
        return total
    
    if __name__ == '__main__':
        profiler = cProfile.Profile()
        profiler.enable()
        result = example_function()
        profiler.disable()
        profiler.print_stats(sort='cumulative', limit=10)
위의 코드에서 `print_stats()` 함수의 `sort`와 `limit` 매개변수를 사용하여 출력을 정렬하고 상위 N개 함수만 표시합니다.

코드 프로파일링을 통해 프로그램의 성능 병목 현상을 찾고 최적화할 수 있습니다. 이를 통해 프로그램을 더 효율적으로 만들고 성능을 향상시킬 수 있습니다.