gpt4 book ai didi

php - 如何对 PHP 脚本的效率进行基准测试

转载 作者:IT老高 更新时间:2023-10-28 11:47:51 24 4
gpt4 key购买 nike

我想知道对我的 PHP 脚本进行基准测试的最佳方法是什么。无论是 cron 作业、网页还是 Web 服务。

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

我想测试和基准测试 PHP 中执行相同操作的不同函数。例如,preg_match vs strposdomdocument vs 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 左右。

有没有更好的办法?

最佳答案

如果您真的想对真实世界的代码进行基准测试,请使用 Xdebug 之类的工具和 XHProf .

Xdebug 非常适合您在开发/暂存环境中工作,而 XHProf 是一款出色的生产工具,可以安全地在那里运行(只要您阅读说明)。任何单个页面加载的结果都不会像查看您的代码如何执行一样相关,而服务器正忙于做一百万个其他事情并且资源变得稀缺。这引发了另一个问题:您是否在 CPU 上遇到瓶颈?内存?输入输出?

您还需要不仅仅关注您在脚本中运行的代码,还需要关注您的脚本/页面的服务方式。您使用的是什么网络服务器?例如,我可以让 nginx + PHP-FPM 在执行 mod_php + Apache 方面表现出色,而后者又因使用好的 CDN 提供静态内容而受到打击。

接下来要考虑的是您要优化什么?

  • 是页面在用户浏览器中呈现的速度吗?第一要务?
  • 将向服务器发送的每个请求尽快退回以最小的 CPU 消耗为目标?

可以通过对发送到浏览器的所有资源进行 gzip 压缩等操作来帮助前者,但这样做可能(在某些情况下)使您远离实现后者。

希望以上所有内容都可以帮助表明,仔细隔离的“实验室”测试不会反射(reflect)您将在生产中遇到的变量和问题,并且您必须确定您的高层次目标是什么,然后您可以做什么到达那里,然后再进行微/过早优化route to hell .

关于php - 如何对 PHP 脚本的效率进行基准测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8291366/

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