Backend/Python

문제 상황프로덕션 환경에서 특정 API의 메모리 사용량이 비정상적으로 높다는 알림을 받았습니다. 요청이 들어올 때마다 메모리가 계속 증가하고, GC(Garbage Collection)가 제대로 동작하지 않는 것처럼 보였습니다.1단계: 메모리 프로파일링 미들웨어 구현먼저 문제를 정량적으로 측정하기 위해 메모리 프로파일링 미들웨어를 구현했습니다.# app/core/memory_profiler.pyimport gcimport tracemallocfrom collections.abc import Callableimport psutilfrom starlette.middleware.base import BaseHTTPMiddlewarefrom starlette.requests import Requestfrom st..
dicts의 get() 메소드와 default 인자 # The get() method on dicts # and its "default" argument name_for_userid = { **382**: "Alice", **590**: "Bob", **951**: "Dilbert", } **def** **greeting**(userid): **return** "Hi %s!" % name_for_userid.get(userid, "there") >>> greeting(**382**) "Hi Alice!" >>> greeting(**333333**) "Hi there!" dictionary 딕셔너리 타입은 immutable한 키(key)와 mutable한 값(value)으로 맵핑되어 있는 순서가 없는 집합..
Seyun(Marco)
'Backend/Python' 카테고리의 글 목록