我正在开发一个 PHP 项目,它是旧 PHP 脚本的改进模型。我声称新模型在 CPU 和 RAM 使用方面会更有效。现在进行评估,我想估计这些过程中的 ram 和 cpu 使用情况。然而代码很小(一个正则表达式),但我相信高负载的输入可以自我展示。
脚本运行时,有什么方法可以计算估计值或 cpu 和 ram 使用率?
我正在开发一个 PHP 项目,它是旧 PHP 脚本的改进模型。我声称新模型在 CPU 和 RAM 使用方面会更有效。现在进行评估,我想估计这些过程中的 ram 和 cpu 使用情况。然而代码很小(一个正则表达式),但我相信高负载的输入可以自我展示。
脚本运行时,有什么方法可以计算估计值或 cpu 和 ram 使用率?
CPU使用率:只是时间代码
$t_start = microtime(true);
useMyCode();
$t_end = microtime(true);
$total_time = $t_end - $t_start;
内存使用情况:您可以使用“tick function”获得一些指示:
$max_mem = 0;
register_tick_function(function() {
global $max_mem;
$cur_mem = memory_get_usage();
if ($cur_mem > $max_mem) $max_mem = $cur_mem;
});
declare(ticks=1) {
useMyCode();
}
echo $max_mem;
为了最好地估计 CPU 使用率,只需运行 10000 次。不过,这不适用于内存使用。
我建议使用xdebug profiler。使用它,您甚至可以准确地知道每个函数的资源使用情况,而不必估计它。
该扩展将创建所谓的 cachegrind 文件,这些文件可以通过图形工具进行分析,KCachegrind
例如WinCachgrind
顺便说一句,如果您想在 php 中获得峰值内存使用率,请在最后一行添加:
echo sprintf("peak memory usage in bytes: %s\n", memory_get_peak_usage());