PHP之程序性能优化思路

本文探讨了PHP的性能优化,包括压力测试工具ab的使用、PHP语言内部的优化策略如避免错误抑制符@、合理使用内存、减少正则表达式使用等,还涉及PHP周边的性能提升,如减少文件操作、优化网络请求、压缩接口输出和缓存管理。同时,文章也介绍了PHP性能分析工具XHPorf的安装和使用,以及如何定位和解决PHP性能瓶颈。
摘要由CSDN通过智能技术生成

【推荐阅读】微服务还能火多久?>>> hot3.png

  • 目录
  • 1. 前言
  • 2. 压力测试工具ab
  • 3. PHP语言性能优化
  • 3.1产生额外开销的错误抑制符@
  • 3.2合理使用内存
  • 3.3尽量少的使用正则表达式
  • 3.4避免再循环内做运算
  • 3.5减少计算密集型业务
  • 3.6务必使用带引号字符串做键值
  • 4. PHP周边性能优化
  • 4.1减少文件类操作
  • 4.2优化网络请求
  • 4.3压缩PHP接口输出
  • 4.4缓存重复计算内容
  • 5. PHP性能分析
  • 5.1 Window下的安装
  • 5.2 Linux下的安装
  • 5.3开启与使用
  • 5.4 PHP性能瓶颈

1.前言

接触开发那么久,也是时候给自己补点性能优化方面的知识了,下面一起来增加点稀奇古怪的知识吧。

PHP性能分析工具XHPorf下载

链接:https://pan.baidu.com/s/1_uYjtUAasxtXOCx6r4o9lA

提取码:a2gb

2.压力测试工具ab

ab是Apache提供的压力测试软件,安装Apache服务器会自带。

举例:

3.PHP语言性能优化

  • 性能问题原因:字写代码冗余,可读性差,性能低
  • 性能低原因:代码粗腰解析编译为底层语言,该过程处理开销大
  • 解决办法:少写冗余代码,多用PHP自身内置变量、常量、函数

3.1产生额外开销的错误抑制符@

@的实际逻辑是在代码开始之前、结束之后,增加opcode,忽略报错

建议:不要使用错误抑制符,会产生性能开销;尽量使用try....catch()

3.2合理使用内存

在脚本中大量使用内存会使系统缓慢,虽然PHP有内存回收机制,但应当小心使用内存;利用unset()及时释放不使用的内存

3.3尽量少的使用正则表达式

正则表达式的回溯开销大,应尽量少用,可利用字符串处理函数实现相同逻辑

3.4避免再循环内做运算

循环内是的计算会被重复计算,浪费资源开销

3.5减少计算密集型业务

PHP不适合密集型运算场景,因为PHP语言特性决定了PHP不适合做大数据量的运算;PHP适合衔接web与后端服务、UI呈现

3.6务必使用带引号字符串做键值

PHP会把没有引号的键值当作常量,产生查找常量的开销,比如:$array[“key”]

4.PHP周边性能优化

PHP周边包括了Linux运行环境、文件存储、数据库、缓存、网络等,平时开发必须搞清楚是脚本问题(自身与研发问题)、还是外部问题,搞清楚了才能更好地优化(对症下药)

4.1减少文件类操作

常见PHP常见开销次序:

读写硬盘、读写数据库、读写内存、读写网络数据

开销情况(由大到小):

读写网络数据>读写硬盘>读写数据库>读写内存

所以,让操作尽量和内存打交道而不是和文件打交道

4.2优化网络请求

网络请求问题:

对方接口不确定因素、网络稳定性

如何优化网络:

4.2.1设置超时时间

  • 连接超市 200ms
  • 读超时 800ms
  • 写超时 500ms

4.2.2将串行请求并行化

  • 使用curl_multi_*()
  • 使用swoole扩展

up-70e8d5a2127046143635a7d0fa76e4ed9fb.png

4.3压缩PHP接口输出

使用GZIP压缩、有利于我们数据输出、使得客户端更快获取数据,但会增加额外的cpu开销

4.4缓存重复计算内容

缓存的内容应该为多次请求但内容不变的

什么时候缓存?后面的任务不强依赖前一个任务结果

up-267c10a4e5300aa4273627bb4406af387f9.png

5.PHP性能分析

工具:XHPorf (源自Facebook的PHP性能分析工具)

5.1 Window下的安装

up-09653edb51377ae0e06ebbaf5307e8ac43a.png

5.2 Linux下的安装

up-9e5459617df7d02d1ac8decbb6d7321fb23.png

5.3开启与使用

up-23bc5c4a3a3925448c837771a905a146074.png

其他性能测试工具:

ab压力测试、vld-opcode代码分析

5.4 PHP性能瓶颈 

解决办法:通过PHP扩展代替原PHP代码中高频逻辑

php扩展站点网址:pecl.php.net

性能优化扩展推荐

  • Opcode Cache:PHP扩展APC
  • Runtime优化:HHVM
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值