그래서 Sergiu Paraschiv의 의견 덕분에 memprof을 설치하고 주제에 대한 소규모 연구를했습니다. 다음은 PHP 5.5.18 (64 비트)을 사용하여 Mac에서 얻은 것입니다.
<?php
memprof_enable();
$a = 255; // +104 (+32 for smth initial?), total: 136
$b = 255; // +104, total: 240
$c = 255.5; // +104, total: 344
$d = 'h'; // +104, total: 448
$e = []; // +176, total: 624
$f = new stdClass; // +136, total: 760
$g = $f; // +72, total: 832
$h = $g; // +72, total: 904
$i = $a; // +72, total: 976
$j = &$i; // +104, total: 1080
$k = &$j; // +72, total: 1152 why not 104?
$l = &$h; // +104, total: 1256
$m = null; // +104, total: 1360
$n = true; // +104, total: 1464
print_r(memprof_dump_array());
Array (
[memory_size] => 1464
[blocks_count] => 27
[memory_size_inclusive] => 1464
[blocks_count_inclusive] => 27
[calls] => 1
[called_functions] => Array
(
[memprof_dump_array] => Array
(
[memory_size] => 0
[blocks_count] => 0
[memory_size_inclusive] => 0
[blocks_count_inclusive] => 0
[calls] => 1
[called_functions] => Array
(
)
)
)
)
32 비트 PHP 또는 64 비트 PHP? 하지만 32 비트의 경우 28 바이트이고 64 비트 PHP의 경우 56 바이트입니다 –
http://stackoverflow.com/questions/5972170/what-is-theoverover-of-using-php-int –
PHP 메모리가 할당되지 않았습니다. 바이트 단위이지만 블록 단위이기 때문에 할당 전후의 메모리 사용량을 측정하여 정확한 수치를 얻지는 못한다. –