为了账号安全,请及时绑定邮箱和手机立即绑定

PHP性能优化总结

标签:
PHP

非原创。

  1. 在循环中判断时,数值判断使用恒等要比等于高效。

  2. 在数组中,数组下标是字母时一定要加上单引号或双引号。因为$row['id']的效率是$row[id]的7倍。

  3. 不要使用“@”去屏蔽错误输出。用@屏蔽错误消息的做法非常低效。
    若你真的想抑制报错,可以通过设置error_reporting来控制。

  4. 尽量不要在for循环中使用函数,比如for ($x=0; $x < count($array); $x)每循环一次都会调用count()函数。

  5. 注销那些不必的变量尤其是大数组,以即开释内存。

  6. 数据库连接使用完毕时当闭掉。

  7. 使用挑选分支语句(switch case)佳于使用少个if,else if语句。

  8. 尽量使用include/require, 而不是include_once/require_once
    在《高性能PHP应用开发》(下载http://pan.baidu.com/share/link?shareid=4170631476&uk=2016712711)一书中有个测试。
    代码:

<?php
require_once("ClassA.php");
require_once("ClassB.php");
require_once("ClassC.php");
require_once("ClassD.php");
<?php
require("ClassA.php");
require("ClassB.php");
require("ClassC.php");
require("ClassD.php");

echo 'Only testing require_once...';

类ABCD四个文件分别为四个空类,分别放在"ClassA.php",“ClassB.php”,“ClassC.php”,"ClassD.php"四个文件中:
Class A{
}
Class B{
}
Class C{
}
Class D{
}
试用ab命令模拟10万个请求,同时有5个并发。
ab -c 10 -n 100000 localhost/index.php
结果显示 require_once 响应时间为99毫秒,每秒支持100.63个请求
而require响应时间为94.8毫秒,减少5毫秒,同时并发数增加到105.44个。
参考:再一次, 不要使用(include/require)_once http://www.laruence.com/2012/09/12/2765.html

  1. 不要重复造车。很多人在重复写着已有的内置function.
    现如今的PHP:
  • 有2700多个function (现在更多了)
  • 80个核心的扩展
  • 154个pecl扩展
    选择已经存在的用吧,自己搞毛啊!
  1. str_replace函数比preg_replace函数快,但strtr函数的效力是str_replace函数的四倍。

  2. 合理运用字符串比较函数:strncmp / strncasecmp 要比 substr 什么的好很多,不管怎样,都比preg_*系列的字符串匹配方法好。

  3. 使用echo的多重参数取代字符串衔接。即使用逗号而不是点连接字符串。
    例如:
    $name = ‘THOMAS’;
    echo 'Hello,My name is ’ . $name; //不推荐
    echo 'Hello,My name is ’ , $name; //推荐,速度更快

  4. 不要引入不需要的文件。每个php脚本文件的引入,都会造成zend编译与执行环节。编译耗时远大于执行的时间。

  5. 获取时间的方式:请不要一遍遍的调用time()直接使用 $_SERVER['REQUEST_TIME']即可得到秒级别的时间戳,不必调用函数

  6. Session 存储。PHP默认是把SESSION存储在一个文件中。把存储session分落在一个目录中,减轻单位间的读写频度。

  • 为每个项目设置他们独立的session存储目录
  • 利用php.ini的配置 session.save_path=”N;/path”将session存储在多个目录中
  1. 代码约简单,跑得越快。为啥,因为简单。
    (逻辑上的简单)语法技巧 、 没必要的封装 、 一行一方法.
点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消