1

看起来在 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 个字节绰绰有余。

4

1 回答 1

3

仅当您只是将整数值存储在内存中的某个位置时,4 个字节才足够,而没有考虑到它是一个需要数据类型标识的变量、指示是否存在对该变量的任何其他引用的标志、名称该变量等所有这些都需要额外的内存。

PHP 将值存储在 zval* 中,因此除了实际值之外,还有用于存储 zval 详细信息的所有附加字节。

于 2012-06-24T10:37:12.890 回答