【发布时间】:2023-04-01 17:05:02
【问题描述】:
我想在请求期间获取每个调用的方法/函数的内存使用信息。在过去的几年里,我正在开发云服务。当 PHP 7.0 发布时,我们注意到使用相同代码的内存使用量增加了大约 30%。
在 7.1 中,我们注意到每个请求的内存使用量通常会增加 10%。
当时我们面临速度和内存(还有很酷的新功能)之间的权衡,我们选择升级我们的环境。
但是现在,PHP 7.2 的速度几乎与 7.1 相同,而我们再次注意到,我们的代码在 7.2 上使用的内存增加了大约 10%。
我想知道如何测试我们的代码并查看每个方法在请求期间使用了多少内存。我尝试了一些类似 memory_get_usage() 或 Meminfo 的方法,但我正在寻找一种方法来为请求期间调用的所有方法/函数自动生成报告。手动检查 2000 多个方法/函数真的是不可能的。
【问题讨论】:
-
xdebug with cachegrind stats?还是 Blackfire.io?
-
@LawrenceCherone:不在 2018 年/使用 php7
-
@symcbean 你是什么意思。你不认为 xdebug 是一个有效的选项?
-
如果在非生产环境中进行测试,这仅是一个有效的选项,当您只需要定性的性能指标时,您有一组现实的回归测试,您可以适当地翻译结果。使用最多内存的代码位不是问题 - 它是具有最高调用频率和内存使用产品的代码位,这是修复的优先事项。
-
我明白了,虽然你现在提到它很明显,但我在这里没有考虑生产就绪方面。
标签: php performance memory profiling