Python Memory leak 검사

Decorator 만 삽입해도 Python Memory leak 을 검수할 수 있는 패키지가 있다.
”Python Memory leak 검사“는 패키지 삽입으로 충분하다.

pip install memory_profiler

FastAPI의 method 별로 추가해보았으나 결과가 정리되지 않았다.

서버 프로그램의 api pipe 의 복잡성과 연속성위에서 단위 동작을 구분하는 것이 쉽지 않으리라.

테스트 케이스를 만들어서 개별 함수를 실행하고, 반복적으로 호출하는 방법으로 테스트해보았다.

from memory_profiler import profile


class Test:

    @profile
    def detect_price_search(self):
        with get_engine().connect() as conn:
            ...
            
            try:
                return CustomJSONResponse(content=contents)
            except ValueError as e:
                # Handle the error or modify the data as needed
                return CustomJSONResponse(content={'error': 'Serialization error'}, status_code=500)



if __name__ == '__main__':
    data = Test().detect_price_stk_code()
    data = Test().detect_price_stk_code()
    data = Test().detect_price_stk_code()
    data = Test().detect_price_stk_code()
    data = Test().detect_price_stk_code()

결과 형태

Filename: api/test/test_price_search.py

Line #    Mem usage    Increment  Occurrences   Line Contents
=============================================================
    15    122.9 MiB    122.9 MiB           1       @profile
    16                                             def detect_price_search(self):
    17    122.9 MiB      0.0 MiB           1           start_date = '2024-01-01'
    18    122.9 MiB      0.0 MiB           1           trade_volume = 200000000000
    19    122.9 MiB      0.0 MiB           1           volume = None
    20                                         

...