PHP 개발 중 가장 자주 마주치는 문제 중 하나가 바로 메모리 부족 오류입니다. 이 문제의 원인과 해결책을 알아보겠습니다.
Fatal error: Allowed memory size of 134217728 bytes exhausted
// 임시 해결책
ini_set('memory_limit', '512M');
// 또는 php.ini에서 설정
// memory_limit = 512M
// 잘못된 방법
$content = file_get_contents('large_file.txt');
// 올바른 방법
$handle = fopen('large_file.txt', 'r');
while (($line = fgets($handle)) !== false) {
// 한 줄씩 처리
processLine($line);
}
fclose($handle);
echo "현재 메모리 사용량: " . memory_get_usage(true) / 1024 / 1024 . "MB\n";
echo "최대 메모리 사용량: " . memory_get_peak_usage(true) / 1024 / 1024 . "MB\n";
// 변수 해제
unset($largeArray);
// 메모리 효율적인 데이터 처리
function getNumbers($max) {
for ($i = 1; $i <= $max; $i++) {
yield $i;
}
}
foreach (getNumbers(1000000) as $number) {
// 메모리를 절약하며 처리
}
unset() 으로 해제메모리 부족 오류는 대부분 코드 최적화로 해결할 수 있습니다. 메모리 제한을 늘리는 것보다는 효율적인 코드 작성이 근본적인 해결책입니다.