PHP一个int值的变量需要多少内存?

How much memory does a variable with int value require in PHP?

我知道,这个问题之前可能已经被问过几次了,但是我已经阅读了这里所有类似的问题和所有答案,但仍然不明白。所以,我的脚本中有一个变量声明:

$a = 255;

这个变量需要多少内存?我读过 this excellent article,它解释了为内部 PHP 结构(如 _zval_struct_zval_gc_info_zend_mm_block_info)分配了多少内存。结果是 48 字节。但是在我的机器上我得到 168 字节。他们来自哪里?我通过在声明前后调用 memory_get_usage() 获得此号码。

我是 运行 PHP 5.5.18(64 位)Mac OS X.

提前致谢。

因此,感谢 Sergiu Paraschiv 的评论,我安装了 memprof 并对该主题进行了一些小的研究。这是我在 Mac 上使用 PHP 5.5.18(64 位)得到的:

<?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
                    (
                    )

            )

    )
)