php檢視一個變數的佔用記憶體的例項程式碼
阿新 • • 發佈:2020-04-01
事例:
php版本為7.2
<?php echo memory_get_usage(),'<br>'; $start = memory_get_usage(); $a = Array(); for ($i=0; $i<1000; $i++) { $a[$i] = $i + $i; } $mid = memory_get_usage(); echo memory_get_usage(),'<br>'; for ($i=1000; $i<2000; $i++) { $a[$i] = $i + $i; } $end = memory_get_usage(); echo memory_get_usage(),'<br>'; echo 'argv:',($mid - $start)/1000,'bytes',($end - $mid)/1000,'<br>'; echo 'Memory:',($mid - $start)/1024,'k',($end - $mid)/1024,'<br>'; 輸出是: 389336 418056 442632 argv:28.72bytes argv:24.576bytes Memory:28.046875k Memory:24k
返回當前分配給你的 PHP 指令碼的記憶體量,單位是位元組(byte)。
大概瞭解1000個元素的整數陣列需要佔用 28k 記憶體,平均每個元素佔用 28 個位元組
memory_get_usage() 返回的結果並不是全是被陣列佔用了,還要包括一些 PHP
執行本身分配的一些結構,可能用內建函式生成的陣列更接近真實的空間:
<?php $start = memory_get_usage(); $a = array_fill(0,10000,1); $mid = memory_get_usage(); //10k elements array; echo 'argv:',($mid - $start )/10000,'byte','<br>'; $b = array_fill(0,1); $end = memory_get_usage(); //10k elements array; echo 'argv:',($end - $mid)/10000,'<br>'; 得到: argv:54.5792byte argv:54.5784byte argv:39.736byte Memory:388.046875k argv:39.736byte Memory:388.046875k
大概瞭解10000個元素的整數陣列需要佔用 388k 記憶體 ,從這個結果來看似乎一個數組元素大約佔用了39個位元組左右。
內容補充:
php獲取變數所佔記憶體大小的方法
$start_memory = memory_get_usage(); $foo = "Some variable"; echo memory_get_usage() - $start_memory;
這個可以獲取所有變數型別的大小
strlen($foo) 這個可以獲取當前字串的位元組大小 除以8就是位大小
到此這篇關於php檢視一個變數的佔用記憶體的例項程式碼的文章就介紹到這了,更多相關php怎麼檢視一個變數的佔用記憶體內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!