php - while(1) 与 for(;;) 中奇怪的内存使用

标签 php performance execution-time

我有以下 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/

相关文章:

python - 在某些字符串上匹配正则表达式的 URL 非常慢

c# - 写入文件 C# 的性能

c - 对于简单的 C cmd 程序 : how to add "program executed in 12,345 seconds"?

performance - Couchbase查询执行时间?

php - 使用 PHP 语言将 URL 中的所有空格和特殊符号替换为破折号

php - 上传图片到mysql数据库失败

php - 使用 mysql 和 php 从虚拟值回显 AVG 值

.net - Neo4j over bolt 协议(protocol)具有非常高的延迟

C++ 模板复杂图像读取类执行时间慢,声明和实现分离

PHP 未定义的常量错误没有意义