Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP에서 메모리 사용량 추적하기: memory_get_usage() 완벽 정리

PHP에서 메모리 사용량 추적하기

PHP에서는 memory_get_usage() 함수를 활용하면 스크립트의 메모리 사용량을 간편하게 추적할 수 있습니다. 흥미로운 점은 PHP가 필요할 때마다 개별 메모리 블록마다 운영체제 수준의 'malloc' 함수를 호출하지 않는다는 것입니다. 대신 한 번에 큰 덩어리의 시스템 메모리를 할당받은 후 내부적으로 관리하며, 환경 설정값을 통해 이 동작을 제어합니다.

두 가지 유형의 메모리 사용량

PHP에서 추적할 수 있는 메모리 사용량은 크게 두 가지로 구분됩니다.

  • 실제 사용량(real usage): PHP 엔진이 운영체제(OS)로부터 요청한 메모리 양
  • 내부 사용량(internal usage): 애플리케이션이 실제로 사용 중인 메모리 양

이 두 가지 사용량은 모두 memory_get_usage() 함수를 통해 확인할 수 있으며, 목적에 따라 원하는 값을 선택적으로 조회할 수 있습니다.

memory_get_usage() 함수 활용법

함수의 기본 반환값은 내부적으로 할당된 메모리(내부 사용량)입니다. 두 번째 매개변수에 true를 전달하면 운영체제로부터 실제로 할당받은 메모리(실제 사용량)를 반환받을 수 있습니다.

<?php
// 내부 사용량 (기본값)
echo memory_get_usage();

// 실제 사용량 (OS로부터 할당받은 크기)
echo memory_get_usage(true);
?>

어떤 값이 더 적합할까?

분석 목적에 따라 주목해야 할 지표가 달라집니다.

  • 특정 코드 조각 분석: 코드 스니펫이나 특정 로직의 메모리 소비를 측정할 때는 내부 사용량이 더 의미 있는 데이터를 제공합니다.
  • 전역적인 메모리 모니터링: 서버 자원 관점에서 애플리케이션 전체의 메모리 사용 패턴을 추적할 때는 실제 사용량이 더 적합합니다.

두 지표의 차이를 이해하고 상황에 맞게 활용하면 메모리 누수 진단과 성능 최적화 작업을 훨씬 효과적으로 수행할 수 있습니다.