네트워크 트래픽, 성능, 뷰, 로그와 앱 데이터를 살펴볼 수 있는 플로팅 디버그 메뉴를 제공하는 iOS 앱용 인앱 디버깅 툴킷입니다.
bloomberg/memray
Python 코드, 네이티브 확장 모듈, 인터프리터의 메모리 할당을 추적하고 여러 유형의 리포트를 생성하는 메모리 프로파일러입니다.
- 스타
- 15,389
- 포크
- 480
- 열린 이슈
- 37
- 마지막 커밋
- 그저께
어떤 프로젝트인가요?
Memray는 Python용 메모리 프로파일러입니다. Python 코드, 네이티브 C/C++ 확장 모듈, Python 인터프리터 자체에서 발생하는 메모리 할당을 기록하고, 수집한 데이터를 플레임 그래프, 표, 트리, 터미널 요약 등의 리포트로 만듭니다. 주로 `memray run` 명령줄 도구로 실행하며, Tracker 컨텍스트 매니저를 통해 라이브러리로 사용할 수도 있습니다.
샘플링 프로파일러와 달리 Memray는 모든 함수 호출을 추적하므로 호출 스택을 정확하게 기록합니다. 네이티브 추적은 `--native` 옵션으로 활성화하며, 결과에 C/C++ 프레임을 추가해 numpy나 pandas 같은 확장 모듈이 관련된 경우 유용합니다. 라이브 모드에서는 프로그램 실행 중 할당 내역을 터미널 인터페이스로 확인할 수 있고, attach 기능으로 이미 실행 중인 프로세스의 추적을 시작할 수도 있습니다.
Memray는 메모리 사용량이 많은 코드의 원인 파악, 메모리 누수 탐지, 메모리 할당이 집중되는 핫스팟 식별 등 흔히 발생하는 메모리 문제를 해결하는 데 활용할 수 있습니다. Python 스레드와 네이티브 스레드를 지원합니다. Linux와 macOS에서만 실행되며 Python 3.9 이상이 필요합니다. pytest 플러그인인 pytest-memray는 별도 프로젝트로 제공됩니다.
핵심 기능
- 01샘플링 프로파일러와 달리 모든 함수 호출을 추적해 호출 스택을 정확하게 기록
- 02`--native` 옵션으로 Python 코드와 네이티브 C/C++ 확장 모듈의 메모리 할당 추적
- 03플레임 그래프, HTML 표, 터미널 트리 및 요약 생성
- 04프로그램 실행 중 할당 내역을 살펴볼 수 있는 라이브 터미널 인터페이스
- 05이미 실행 중인 Python 프로세스에 연결 가능
- 06Tracker 컨텍스트 매니저를 통해 Python 라이브러리로 사용 가능
활용 사례
- Python 서비스나 스크립트의 메모리 사용량이 높은 원인 파악
- 장시간 실행되는 애플리케이션의 메모리 누수 탐지
- 대량의 메모리를 할당하는 코드 핫스팟 식별
- numpy나 pandas 같은 C 확장 모듈에 의존하는 Python 프로그램 프로파일링
빠른 시작
- 1
pip으로 PyPI에서 Memray를 설치합니다
python3 -m pip install memray - 2
프로파일러로 스크립트를 실행해 메모리 할당을 기록합니다
python3 -m memray run my_script.py - 3
결과 파일에서 HTML 플레임 그래프를 생성합니다
memray flamegraph memray-my_script.py.2369.bin
사용 전 알아둘 점
- Linux와 macOS에서만 작동하며 Windows에는 설치할 수 없습니다.
- 소스에서 빌드하려면 libunwind, lz4, libdebuginfod와 같은 시스템 라이브러리가 필요합니다.
토픽
자주 묻는 질문
- memray은(는) 무엇인가요?
- Python 코드, 네이티브 확장 모듈, 인터프리터의 메모리 할당을 추적하고 여러 유형의 리포트를 생성하는 메모리 프로파일러입니다. Memray는 Python용 메모리 프로파일러입니다. Python 코드, 네이티브 C/C++ 확장 모듈, Python 인터프리터 자체에서 발생하는 메모리 할당을 기록하고, 수집한 데이터를 플레임 그래프, 표, 트리, 터미널 요약 등의 리포트로 만듭니다. 주로 `memray run` 명령줄 도구로 실행하며, Tracker 컨텍스트 매니저를 통해 라이브러리로 사용할 수도 있습니다.
- memray은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- memray은(는) Apache-2.0 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- memray은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. memray의 마지막 커밋은 2026년 10월 19일입니다.
- memray은(는) 어디에 사용할 수 있나요?
- Python 서비스나 스크립트의 메모리 사용량이 높은 원인 파악 장시간 실행되는 애플리케이션의 메모리 누수 탐지 대량의 메모리를 할당하는 코드 핫스팟 식별 numpy나 pandas 같은 C 확장 모듈에 의존하는 Python 프로그램 프로파일링
- memray는 어떻게 설치하나요?
- pip으로 PyPI에서 Memray를 설치합니다: python3 -m pip install memray 프로파일러로 스크립트를 실행해 메모리 할당을 기록합니다: python3 -m memray run my_script.py 결과 파일에서 HTML 플레임 그래프를 생성합니다: memray flamegraph memray-my_script.py.2369.bin
- memray은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/bloomberg/memray
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
PEP 621 및 PEP 517 메타데이터를 기반으로 가상 환경, 잠금 파일, 빌드를 관리하는 현대적인 Python 패키지 및 의존성 관리자입니다.
로컬에서 실행되며 제어권과 개인정보 보호를 우선하는 오픈소스 홈 자동화 플랫폼으로, Raspberry Pi나 로컬 서버에서 자주 사용됩니다.
대화 기록을 원문 그대로 저장하고 의미 검색으로 찾아주는 로컬 우선 AI 메모리 시스템으로, MCP 서버와 CLI를 제공합니다.
코딩 에이전트가 Chrome DevTools를 사용해 실행 중인 Chrome 브라우저를 제어하고 검사하며, 디버깅과 성능 분석을 수행하도록 지원하는 MCP 서버입니다.
HTTP/1, HTTP/2, WebSocket 트래픽을 검사하는 콘솔·명령줄·웹 인터페이스를 갖춘 TLS 지원 인터셉팅 HTTP 프록시입니다.