我有以下 2 个代码。
1:
$i = 0;
while(1)
{
$i++;
echo "big text for memory usage ";
if ( $i == 50000 )
break;
}
echo "<br />" . memory_get_usage();
每次都回显:1626464
2:
$i = 0;
for(;;)
{
$i++;
echo "big text for memory usage ";
if ( $i == 50000 )
break;
}
echo "<br />" . memory_get_usage();
每次都回显:1626656
谁能解释这两种不同内存使用之间的差异?即使他们这么小...
最佳答案
这是一个实现细节。对于 for 循环,PHP 可能会使用一些空间来存储三个指针,一个用于初始化,一个用于递增,一个用于停止条件。如果您使用的是 64 位系统,那么这就是您看到的 64 * 3 = 192
额外位的原因。当然,如果不看实际代码,很难判断我是否正确。
关于php - while(1) 与 for(;;) 中奇怪的内存使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12621709/