2009-08-03 84 views
1

就像在腳本的開始和結尾調用memory_get_usage()一樣簡單,並從第二個值中減去1st,以獲得該腳本使用的總內存?如果是這樣,我怎樣才能將該值轉換爲更容易理解的數字,如kb和mb?在PHP中計算腳本內存使用情況?

+0

如果你有一個元堆棧溢出帳戶,它會很好,如果你把它們聯繫起來。 – 2009-08-03 18:47:01

回答

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)和十進制(1000),其KB(註釋較低),MB,GB和TB的真KiB,MiB,GiB和TiB。 – OIS 2009-08-03 13:55:59

3

您可能更願意在腳本末尾調用memory_get_peak_usage,這將在執行過程中返回最高的總分配。這更有可能成爲一個有用的數字 - 獲取起始值和結束值不會分配在運行時分配的內存。

將其格式化爲人類可讀的數字可以手動處理(只需除以1024然後打印爲Kb),或者使用類似NumberFormatter的類。