PHP语言自身分析、优化(PHP底层 C层面上的)
PHP语言级性能优化
优化点:少些代码,多用PHP自身能力
性能问题:自写代码冗余较多,可读性不佳,并且性能低
原因:PHP代码需要编译解析为底层语言,每次请求都会处理,开销大
多使用PHP内置变量、函数、变量
php代码运行流程:
优化点:PHP内置函数的性能优劣
php内置函数之间依然存在快慢差异
多去了解PHP内置函数的时间复杂度
优化点:尽量少用魔法函数
PHP提供的魔法函数,性能不佳
尽可能规避使用PHP魔法函数(只是尽量,可以进行对比)
优化点:产生额外开销的错误抑制符@
@符号逻辑:在代码前、结束后,增加Opcode,忽略报错
优化点:合理使用内存
PHP有内存回收机制保底,但是也请小心使用内存
利用unset()及时释放不适用的内存(注:unset()出现注销不掉的情况)
优化点:尽量少的使用正则表达式
正则表达式的回溯开销较大,
利用字符串处理代码,实现相同逻辑
优化点:避免在循环计算式内做运算
循环内的计算式将会被重复计算
<?php
$str="hello word";
for($i=0;$i<strlen($str);$i++){
//do something
}
应该改为
<?php
$str="hello word";
$count=strlen($str);
for($i=0;$i<count;$i++){
//do something
}
优化点:减少计算密集型业务
PHP不适合密集型运算的场景
PHP语言特性决定了PHP不适合做大数量级的运算
PHP适合衔接WebServer与后端服务、UI呈现
优化点:务必使用带引号字符串做键值
PHP会将没有引号的键值当做常量,产生查找常量的开销
严格使用引号作为键值
<?php
$array=array(
"key"=>"ddd",
"imooc"=>"ddfdfdf"
);
echo $array[key]."\n";//PHP自带纠错功能
虽然$array["key"]和$array[key]的输出一样,但是$array["key"]性能更好
PHP周边问题的性能优化
优化运行环境
Linux运行环境