PHP语言级的性能优化
博客专区 > TinkerJ 的博客 > 博客详情
PHP语言级的性能优化
TinkerJ 发表于2年前
PHP语言级的性能优化
  • 发表于 2年前
  • 阅读 22
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

摘要: 从PHP代码上进行性能优化

注:Linux  time命令可以查看一个程序的耗时

优化点 1(少写代码):自写代码冗余较多,可读性不加,并且性能低;php代码需要编译解析为底层语言,这一过程每次请求都会处理一遍,开销很大;好的方法是多使用php内置变量、常数、函数。


优化点 2(PHP内置函数的性能优劣):PHP内置函数之间存在快慢差别;应多了解PHP内置函数的时间复杂度,使用相对较快的函数;例如:isset() 与 array_key_exists() 之间的性能差异。


优化点 3(尽可能少用魔法函数):PHP提供的魔法函数性能不佳,尽量避免使用魔法函数。


优化点 4(产生额外开销的错误抑制符@):PHP提供的错误抑制符只是为了方便”懒人“;@的实际逻辑--在该行代码开始前、结束后,增加Opcode,忽略报错;建议尽量不要使用@错误抑制符;vld(PHP查看opcode的扩展)。


优化点 5(合理使用内存):PHP有内存回收机制,但也应该小心使用内存;建议利用unset()及时释放不使用的内存(注:unset()可能 出现注销不掉的情况)。


优化点 6(尽量少的使用正则表到式):正则表达式的回溯开销较大;建议利用字符串处理函数实现相同逻辑。


优化点 7(避免在循环内做运算):循环内的计算式会被重复计算,例如:

       

$str = 'helle world';
for($i = 0;$i < strlen($str);$i++)
{
    // do something;
}


        代码中strlen($str)将会被重复计算,应在for循环外使用变量接受strlen($str)的返回值,然后使用该变量与$i进行比较。

$str = 'helle world';
$strlength = strlen($str);
for($i = 0;$i < $strlength ;$i++)
{
    // do something;
}



优化点 8(减少计算密集型业务):PHP不适合密集型运算的场景,PHP的语言特性决定了PHP不适合做大数据量运算;PHP适合衔接Webserver与后端服务,UI呈现。


优化点 9(务必使用带引号字符串做键值):PHP会将没有引号的键值当作常量查找,会产生多余的开销和留下程序的隐患;建议键值严格使用引号。


共有 人打赏支持
粉丝 0
博文 1
码字总数 601
×
TinkerJ
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: