在PHP中看起来需要大约213个字节来存储一个整数,这是真的吗? 好的,请看下一个代码:
$N = 10000;
echo memory_get_usage()."\n";
$v = array();
for($i = 0; $i < $N; $i++) {
$v[] = $i;
}
echo memory_get_usage()."\n";
unset($v);
echo memory_get_usage()."\n";
下一步是输出:
641784
2773768
642056
因此,差异是2773768 - 641784 = 2131984字节,或每个整数213字节。 为什么这么多? 4个字节就足够了。
答案 0 :(得分:3)
如果你只是在内存中的某个地方存储一个整数值,那么4个字节就足够了,不需要考虑它是一个需要数据类型标识的变量,标志来指示是否有对该变量的任何其他引用,该变量的名称等等都需要额外的内存。
PHP将值存储在zval *中,因此除了实际值之外,还有用于存储zval详细信息的所有附加字节。