gpt4 book ai didi

php - 为什么一个简单的 PHP unset() 内存测试使用的内存量是 PHP 5.3 的两倍?

转载 作者:可可西里 更新时间:2023-10-31 23:25:21 25 4
gpt4 key购买 nike

我正在测试 unset() 是否会在脚本运行时影响内存,看看 unset() 或其他已知方法 $var=null 是否更有效。 unset() 确实会影响内存,但由于我在两个不同的虚拟主机上对其进行了测试,我想知道为什么同一个脚本占用的内存量是或多或少的两倍?我猜答案很简单,但我现在想不起来了。脚本本身如下:

<?php

$init=memory_get_usage();
$test=array();
for($i=0;$i<=100000;$i++){
$test[$i]=rand(0,10000000);
}
echo 'MEMORY CHANGE: '.((memory_get_usage()-$init)/1024/1024).'MB<br/>';

for($i=0;$i<=100000;$i++){
unset($test[$i]);
}
echo 'MEMORY CHANGE: '.((memory_get_usage()-$init)/1024/1024).'MB<br/>';

//output on PHP 3.2.5 virtualhost:
//MEMORY CHANGE: 6.98558807373MB
//MEMORY CHANGE: 0.500259399414MB

//output on PHP 5.3.5 virtualhost
//MEMORY CHANGE: 13.970664978MB
//MEMORY CHANGE: 1.00063323975MB

?>

谢谢!

最佳答案

PHP 3.2.5?那太古老了,甚至还没有达到石器时代。 PHP 的内部结构使用 Zend 引擎进行了全面重写,因此即使语言本身保持相对相同,您也是在比较两种不同的环境。

但如果版本号打错了,那么它可能是 32 位 v.s. 64 位主机,它使整数的大小加倍,并且可以解释您声称的 2 倍差异。

关于php - 为什么一个简单的 PHP unset() 内存测试使用的内存量是 PHP 5.3 的两倍?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5834337/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com