有时您需要对代码进行改进并提高效率。使用一些简单的 PHP 统计信息可以帮助您确定需要改进的领域。这些片段提供了有用的洞察力,让您了解应用程序的运行效率。

因此,对于我们的第一个片段,我们将查看脚本执行时间。这将告诉我们服务器处理和执行我们的 PHP 脚本需要多长时间。这是最有用的片段之一。它对于对 PHP 5.6 和 7.0 进行基准测试也非常有用。

 

1.执行时间

要计算我们需要的脚本执行时间,可以使用 $_SERVER 超级全局变量。由于 v5.4.0 $_SERVER[‘REQUEST_TIME_FLOAT’] 将记录脚本的开始时间。我们现在需要做的就是声明 microtime(true),microtome 将以微秒为单位返回当前的 unix 时间戳。布尔值设置为 true,这会将值作为浮点数返回,以便我们可以使用它执行计算。现在我们需要将它放在脚本的末尾并从开始时间中减去它。

我们将需要一些格式以使其更易于阅读。我们将创建一个新变量来存储时间,然后将其输出到我们的网站上。 

<?php
//Get average CPU usage
$cpuUsage = sys_getloadavg();
echo "<h4><li><i class='fa fa-server'></i> CPU Load: <b>".$cpuUsage[0]."</b></li></h4>";
?>

 

2. CPU负载

另一个有用的统计数据是 CPU 负载。这是 PHP 中的一个内置数组,它将显示系统运行队列中的进程数。该数组将分别返回最后 1、5 和 15 分钟的三个平均样本。这是查看服务器承受何种压力以及它必须处理多少事情的好方法。该数组对于确定您的服务器是否几乎处于最大容量非常有用,并且可以相当简单地设置一些逻辑来限制任何服务器停机时间。

<?php
//Display server script execution time
$finishedTime = number_format((float)(microtime(true) - $_SERVER["REQUEST_TIME_FLOAT"]), 3, '.', ''); echo "<h4><li>Execution Time: <b>".$finishedTime." sec</b></li></h4>";
?>

 

3. 内存使用。

通过此代码段,我们将看到峰值内存使用情况。我们将不得不看这里的价值观。首先是使用的内存。这是脚本使用的峰值内存。其次,我们为脚本分配了峰值内存。将两者结合使用可以让我们更深入地了解代码的内部工作和效率。 

<?php
//Display Memory used and allocated
$usedMem = number_format((float) (memory_get_peak_usage(false) / 1024 / 1024), 2, '.', '');
echo "<li>Used Memory: <b>" . $usedMem . "MB</b></li>";
echo "<li><Allocated Memory: <b>" . (memory_get_peak_usage(true) / 1024 / 1024) . "MB</b></li>";
?>

 

4. 数据库查询次数。 

另一个有用的事情是查看我们正在执行的数据库查询的确切数量。这将使我们能够减少数量并使我们的应用程序更精简、更快。这个片段比前几个片段需要更多的设置,但回报是值得的。 

我将假设这里使用的是 MVC 框架。 

首先在数据库控制器中,我们创建一个新变量来存储所有数据库查询的计数。之后在每个方法中,我们添加以下内容

<?php
//Display amount of PDO queries used
$queries = Database::getCount();
echo "<h4><li>PDO Queries: <b>44</b></li></h4>";
?>

这将在每次调用方法时将计数器加一。然后我们应该为计数器创建一个方法,我们可以在其他地方调用它来简单地返回那个数字。

最后,我们创建一个新变量来存储对 DatabaseCount 方法的调用,我们现在可以在输出中使用它。

/* Database Example */
<?php
class Database extends PDO
{
    /**
    * Create a variable to store the count of PDO Queries
    */
    public static $queryCount = 0;

    /**
    * insert method
    * @param  string $table table name
    * @param  array $data  array of columns and values
    */
    public function insert($table, $data)
    {
        //Increment value of var for each PDO function in Helper
        self::$queryCount++;

        //Some code here...
    }

    public function getCount()
    {
        //Return the var
        return self::$queryCount;
    }
}
?>

因此,在所有这些之后,您现在应该拥有一些有用的 PHP 统计信息,您可以使用这些统计信息来优化代码并提高速度、效率,并且仅用于一些令人讨厌的统计信息。这些可以真正识别您的应用程序中可能滞后或减慢您的应用程序的区域。Q9源码网希望这些代码对你有帮助。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。