2009-08-03 4 views
1

스크립트의 시작과 끝에서 memory_get_usage()을 호출하고 두 번째 값에서 1을 뺀 것처럼 간단하여 스크립트에 사용 된 총 메모리를 확보 할 수 있습니까? 그렇다면 어떻게 그 값을 kb와 mb와 같이 더 이해하기 쉬운 숫자로 변환 할 수 있습니까?PHP에서 스크립트 메모리 사용 계산 중?

+0

메타 스택 오버플로 계정이있는 경우 링크하면 좋을 것입니다. –

답변

6

이런 뜻입니까?

function file_size($size) 
{ 
    $filesizename = array(" Bytes", " KB", " MB", " GB", " TB", " PB", " EB", " ZB", " YB"); 
    return $size ? round($size/pow(1024, ($i = floor(log($size, 1024)))), 2) .$filesizename[$i] : '0 Bytes'; 
} 

일반적으로 파일 크기를 지정하는 데이 방법을 사용하지만 문제를 해결하는 데 사용할 수 있습니다.

+0

if 문장에서 번호를 사용할 수있을 때 왜 1024로 여러 번 나눕니 까? 그리고 이진수 (1024)와 10 진수 (1000)의 kB, MB, GB 및 TB에 대한 KiB, MiB, GiB 및 TiB가 있습니다. – OIS

+0

내가 좀 더 간단한 내가 편집 한 것을 발견했다. –

3

스크립트 끝에서 memory_get_peak_usage으로 전화하면 실행 중 가장 높은 총 할당을 반환합니다. 이것은 유용한 수치가 될 가능성이 높습니다. 시작과 끝 값을 얻는 것은 런타임 중에 할당 된 메모리를 고려하지 않습니다.

사람이 읽을 수있는 숫자로 서식을 지정하면 수동으로 처리 할 수 ​​있습니다 (1024로 나누고 Kb로 인쇄). 또는 NumberFormatter과 같은 클래스로 처리 할 수 ​​있습니다.