2013-08-07 3 views
4

PHP 응용 프로그램이 조금 느리게 실행되었으며 현재로서는별로 효율적이지 않습니다. 내 전체 서버가 자주 내려 가고 내가 비난이 응용 프로그램을 가지고 생각합니다.PHP memory_get_usage가 memory_limit보다 큽니다.

Memory in use: 629632 (614.921875M) 
Peak usage: 635696 (620.796875M) 
Memory limit: 128M 

방법이 될 수있다 : 이것은 다음을 보여줍니다

echo 'Memory in use: ' . memory_get_usage() . ' ('. memory_get_usage()/1024 .'M) <br>'; 
echo 'Peak usage: ' . memory_get_peak_usage() . ' ('. memory_get_peak_usage()/1024 .'M) <br>'; 
echo 'Memory limit: ' . ini_get('memory_limit') . '<br>'; 

: 나는 메모리 사용을 모니터링하고 내가 제한으로 얼마나 많은 확인 거라고 생각? 사용중인 메모리가 메모리 제한보다 커야합니까? 어떤 것이 실제로 망가 졌거나 전혀 모르겠다. memory_limit 설정 방식 (또는 memory_get_usage())

감사합니다.

+1

[memory_get_usage] (http://php.net/manual/en/function.memory-get-usage.php)는 바이트 단위로 반환하며 실제로 계산하는 것은'kB '입니다. '1024''로 다시 나누어'MB'에 넣으십시오. – AmazingDreams

+2

수학은 엄청난 차이가 있습니다. 메가 바이트를 얻으려면 1024로 나눕니다. – datasage

답변

7

memory_get_usage 바이트 단위로 반환합니다. 실제로 계산할 대상은 kB입니다. 1024하여 분할 다시 MB 같은

에 그것을 가지고는 memory_get_peak_usage

예를 들면 간다

echo 'Memory in use: ' . memory_get_usage() . ' ('. ((memory_get_usage()/1024)/1024) .'M) <br>'; 
+5

나는 내 일을 그만 두어야한다. | – Nahuel

+2

우리에게 가장 좋은 일이있을 수 있습니다.) – AmazingDreams