PHP 语言级性能优化

PHP 语言级性能优化 -- 可使用ab压力测试工具进行测试;

1、多使用系统内置函数;

2、系统内置函数之间的性能也不一样,选择较好的函数;如 isset 与 array_key_exist , isset 耗时更短;

3、尽量少用php魔法函数,因为魔法函数性能不佳;

4、禁用错误抑制符 @ ,会产生额外开销;正常使用try throw 抛出错误 ;

5、合理使用内存,用unset() 或者 $变量 = null释放内存;

             1)、unset()函数只能在变量值占用内存空间超过256字节时才会释放内存空间

             2)、unset()函数需要删除所有指向变量才会释放内存;如 $a = 1; $b = &$a ; 需要将$a及$b都unset才会释放;

6、尽量少用正则表达式;

7、避免在循环内做计算;

$s = 'abc'; // 在循环内计算字符串长度,会被重复计算; 
for($i = 0; $i < strlen($s); $i++){ //代码块 } 
// 优化方式 
$len = strlen($s); 
for($i = 0; $i < $len; $i++){ //代码块 }

8、减少计算密集型业务;(不适合大批量数据处理)

9、务必使用带引号字符串作为键值;(减少查找常量的开销)

define('key',"hhh"); 
$a = [ 'key' => "hello world"; ]; 
echo $a[key]; //会产生额外开销 
echo $a['key']; //不会

10、不需要解析的字符串 最好用单引号;

11、requiere_once()比较耗资源;

       这是因为requiere_once需要判断该文件是否被引用过),所以能不用尽量不用。常用require/include方法避免

12、引用路径尽量使用绝对路径,减少相对路径查询;

13、如果你需要得到接口请求的时间,$_SERVER['REQUSET_TIME']优于time(); 

14、建立一个对象属性(类里面的变量)例如($this->prop) 比局部变量要慢3倍;

15、某些地方使用isset代替strlen

举例如下)
if (strlen($foo) < 5) { echo “Foo is too short”

} 
(与下面的技巧做比较) 
if (!isset($foo{5})) { echo “Foo is too short”
}
//调用isset()恰巧比strlen()快,因为与后者不同的是,isset()作为一种语言结构,意味着它的执行不需要函数查找和字母小写化。也就是说,实际上在检验字符串长度的顶层代码中你没有花太多开销。

16、变量尽量少;

17、使用缓存技术;

使用XHprof工具,分析PHP性能

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值