gpt4 book ai didi

第二次运行相同代码时的 PHP 执行时间

转载 作者:可可西里 更新时间:2023-11-01 00:57:17 26 4
gpt4 key购买 nike

我有一个好奇心。我创建了一个简单的 php 脚本,它创建了一个包含 100 万个简单数组元素的数组,然后循环遍历它们。

第一次执行时,似乎需要大约 1.4 秒。但是在第二次执行相同的代码时,它总是需要大约 ~2,1 秒。我已经重复了几次,结果都一样。

这是为什么?

此处的代码示例:

    $timeStart = microtime(true);

$invoices = array();
for ($i = 1; $i <= 1000000; $i++) {
$invoices[] = array(
'issuedValue' => $i,
'fiscalNumber' => $i,
'random1' => $i,
'random2' => $i,
'random3' => $i,
);
}
foreach ($invoices as $invoice) {
// nothing here
}

var_dump(microtime(true) - $timeStart);

// second iteration here

$timeStart = microtime(true);

$invoices = array();
for ($i = 1; $i <= 1000000; $i++) {
$invoices[] = array(
'issuedValue' => $i,
'fiscalNumber' => $i,
'random1' => $i,
'random2' => $i,
'random3' => $i,
);
}
foreach ($invoices as $invoice) {
// nothing here
}

var_dump(microtime(true) - $timeStart);

最佳答案

发生这种情况是因为内存使用也增加了在第二次运行期间触发垃圾收集周期的机会。如果您在运行之间添加以下代码:

unset($timeStart, $invoices, $i, $invoice);
gc_collect_cycles();

要删除引用并清理未使用的内存,您将获得相同的时间。

关于第二次运行相同代码时的 PHP 执行时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37855331/

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