PHP代码性能优化记录

来源:互联网 发布:python 硬件自动化测试 编辑:程序博客网 时间:2024/06/17 10:20

本文记录了工作中遇到的一些PHP性能问题以及调优方法,作为参考。
1. 系统函数,如max、min。
对于系统函数而言,本身的算法已经接近最优了,唯一可以优化的地方就是减少函数调用的开销。如max函数获得两个数的最大值可直接用if语句实现。
基础代码如下:

<?php$start = microtime(true);for ($i = 0; $i <= 100000000; $i++) {     $a = 1;    $b = 2;    // TODO}$end = microtime(true);$spend = $end - $start; echo 'spend time:', $spend;

耗时约为5s。
使用max函数后,循环代码如下:

for ($i = 0; $i <= 100000000; $i++) {     $a = 1;    $b = 2;    $b = max($a, $b);}

耗时约为21s。
改用if语句判断后,循环代码如下:

for ($i = 0; $i <= 100000000; $i++) {     $a = 1;    $b = 2;    if ($b < $a) {        $b = $a;    }}

耗时比调用函数少得多,约为9s。
改用三元运算符判断后,循环代码如下:

for ($i = 0; $i <= 100000000; $i++) {     $a = 1;    $b = 2;    $b = $b < $a ? $a : $b;}

耗时比使用if语句略多,约为11s。
使用max函数,修改赋值顺序后,循环代码如下:

for ($i = 0; $i <= 100000000; $i++) {     $a = 2;    $b = 1;    $b = max($a, $b);}

耗时约为21s。
改用if语句判断后,循环代码如下:

for ($i = 0; $i <= 100000000; $i++) {     $a = 2;    $b = 1;    if ($b < $a) {        $b = $a;    }}

耗时比调用函数少得多,约为10s。
改用三元运算符判断后,循环代码如下:

for ($i = 0; $i <= 100000000; $i++) {     $a = 2;    $b = 1;    $b = $b < $a ? $a : $b;}

耗时比使用if语句略多,约为11s。
结论:使用if语句进行判断的方式性能最优,调用系统函数进行判断的方式性能最差。

原创粉丝点击