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
...