分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 网页技术

PHP性能优化

发布时间:2023-09-06 02:16责任编辑:郭大石关键词:PHP性能优化

目录

  • 性能问题浅析
  • 产生性能问题的原因
  • 性能问题解决方案
  • 压力测试工具简介 Apache Benchmark(ab)
  • PHP语言级性能优化

性能问题浅析

PHP的性能问题在整个项目的性能问题中占比30%-40%,不到50%。 优化项目不局限于优化PHP。


产生性能问题的原因

  • PHP语法使用不当
  • 使用PHP语言做了不擅长的事情
  • 使用PHP语言连接的服务不给力
  • PHP自身的短板,PHP需要解析为底层语言:PHP --> C语言 --> 汇编语言,每次请求都需要处理一遍。
  • 具体问题具体分析

知识点

graph LRA(php文件)-->|Scanner| B(Exprs)B-->|Parser| C(Opcodes)C-->|Exec| D(Output)

PHP文件经Zend引擎逐行扫描,保存成Zend引擎能识别的语法Exprs。然后经过解析生成Opcodes,再执行Opcode,产生结果。

PHP缓存的对象是Opcode


性能问题解决方案

  • PHP语言级的优化(易)
  • PHP周边的性能优化(数据库, 服务器, 缓存等)(难)
  • PHP语言自身分析, 优化(底层)(较难)

压力测试工具简介 Apache Benchmark(ab)

  • 简介:ab是由Apache提供的压力测试软件。安装Apache时服务器会自带该压测软件。

  • 使用方法:

./ab -n 1000 -c 100 http://www.baidu.com/ ??注意如果不是请求某个具体文件,则必须添加最后的斜杠 ????-n 请求数 ????????????-c 并发数 ???????????????????URL 目标压测地址
  • 安装方法:在安装Apache时已经附带安装

  • 返回结果

//服务器信息Server Software: ???????BWS/1.1Server Hostname: ???????www.baidu.comServer Port: ???????????80//文档信息Document Path: ?????????/Document Length: ???????111326 bytes//连接信息Concurrency Level: ?????10Time taken for tests: ??0.333 seconds ??//整个测试持续时间Complete requests: ?????100 //完成的请求数量Failed requests: ???????97 ?//模拟请求中失败的请求数量 ??(Connect: 0, Receive: 0, Length: 97, Exceptions: 0)Total transferred: ?????11240793 bytes //模拟请求中传输的总数据量,包含标头数据HTML transferred: ??????11145902 bytes //模拟请求中正文数据总量Requests per second: ???300.25 [#/sec] (mean) //每秒支持的请求总数Time per request: ??????33.306 [ms] (mean) //满足一个请求花费的总时间Time per request: ??????3.331 [ms] (mean, across all concurrent requests)Transfer rate: ?????????32959.33 [Kbytes/sec] received //m每秒接收到的字节总数Connection Times (ms) ?????????????min ?mean[+/-sd] median ??maxConnect: ???????1 ???1 ??0.4 ?????1 ??????2Processing: ???18 ??30 ??6.7 ????26 ?????44Waiting: ???????9 ??13 ??3.8 ????11 ?????26Total: ????????19 ??31 ??6.7 ????28 ?????45Percentage of the requests served within a certain time (ms) ?50% ????28 ?66% ????31 ?75% ????36 ?80% ????40 ?90% ????42 ?95% ????43 ?98% ????44 ?99% ????45 100% ????45 (longest request)

在优化中Requests per second的值要尽可能的大,Time per request的值要尽可能小。


PHP语言级性能优化

  • 尽量使用PHP自身的内置变量、常量、函数

自写代码冗余较多,可读性不强,并且降低性能。

PHP性能优化

原文地址:https://www.cnblogs.com/my3306/p/9712490.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved