PHP 内存使用情况


php memory usage

看起来在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 个字节只够你简单地将整数值存储在内存中的某个地方,而不考虑它是一个需要数据类型标识的变量的事实,标志来指示是否有任何其他引用该变量,该变量的名称等,所有这些都需要额外的内存。

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

相关文章: