PHP Measure函数内存使用情况[已关闭]

sqserrrh  于 2023-05-05  发布在  PHP
关注(0)|答案(1)|浏览(134)

已关闭,此问题需要details or clarity。目前不接受答复。
**想改善这个问题吗?**通过editing this post添加详细信息并澄清问题。

3天前关闭。
Improve this question
我想测量我的函数使用了多少内存。因为我想做10次迭代,所以我使用for循环。问题是,在第一次迭代之后,内存使用总是相同的。如果内存作为第一次迭代计算平均值,我应该怎么做?
我的代码段:

for ($i = 0; $i < 10; $i++) {
    $memoryStart = memory_get_usage();
    $basketsWithFilter = $customer->getBasketsExceedTotal(total: 5);
    $memoryEnd = memory_get_usage() - $memoryStart;
    $memoryWithFilter[] = round($memoryEnd / 1024);
}

在数组中,结果如下:17, 2, 2, 2, 2, 2, 2, 2, 2, 2

mwg9r5ms

mwg9r5ms1#

像您这样的函数通常不会在每次迭代中消耗大量的RAM,除非它们将数据加载到RAM以供以后使用,或者除非代码无意中出现内存泄漏。如果没有看到函数的代码,很难确切地知道为什么after-minus-before在第一次迭代中的内存使用量是10 KiB,而在随后的迭代中是2KiB。但是php的运行时有引用计数garbage collection。这通常意味着随着php为各种目的分配、释放和重用堆RAM,RAM的使用将缓慢增加。
恕我直言,“平均”RAM使用率没有任何意义,除非如前所述,您的函数的目的是将数据加载到RAM中供以后使用。

相关问题