小编典典

如何基准测试PHP脚本的效率

php

我想知道什么是基准测试我的PHP脚本的最佳方法。cron作业,网页或Web服务无关紧要。

我知道我可以使用microtime,但这真的给了我PHP脚本的实时性吗?

我想测试和测试PHP中执行相同功能的不同函数。例如,preg_matchvs strposdomdocumentvs
preg_match或preg_replace vs str_replace`

网页示例:

<?php
// login.php

$start_time = microtime(TRUE);

session_start(); 
// do all my logic etc...

$end_time = microtime(TRUE);

echo $end_time - $start_time;

这将输出:0.0146126717(一直在变化-但这是我得到的最后一个)。这意味着执行PHP脚本大约需要0.015。

有没有更好的办法?


阅读 258

收藏
2020-05-26

共1个答案

小编典典

如果您确实想对真实世界的代码进行基准测试,请使用XdebugXHProf之类的工具。

Xdebug非常适合在开发人员/舞台上工作的人,XHProf是生产的绝佳工具,并且可以在此处安全运行(只要您阅读了说明)。任何单个页面加载的结果都不会像查看服务器在执行一百万其他事务以及资源变得稀缺时代码的执行情况那样具有相关性。这就提出了另一个问题:您是否正在瓶颈CPU?内存?输入/输出?

您还需要关注的不仅仅是脚本中运行的代码,而是如何提供脚本/页面。您正在使用什么Web服务器?举例来说,我可以使nginx + PHP-
FPM认真执行mod_php + Apache,而后者又通过使用良好的CDN来提供静态内容而被淘汰。

接下来要考虑的是您要优化的内容?

  • 页面在用户浏览器中呈现的速度是否是第一要务?
  • 目标是以最少的CPU消耗尽快回复对服务器的每个请求吗?

前者可以通过gzip压缩发送到浏览器的所有资源的方式来获得帮助,但是这样做(在某些情况下)可能会使您进一步远离实现后者。

希望以上所有内容可以帮助表明,精心隔离的“实验室”测试不会反映您在生产中会遇到的变量和问题,并且您必须确定您的高级目标是什么,然后才能达到目标。在前往微观/过早优化路线前往地狱之前。

2020-05-26