php性能优化
2015-10-14 20:14
519 查看
遇到性能问题 一.什么情况下会遇到php性能问题? 1. php语法使用不恰当 2. 使用php语言做了其不擅长的事 3.使用php语言连接的服务不给力 4.php自身的短板 5.不知道问题 解决性能问题 性能优化项目,不要局限于优化php 一般php性能问题不到项目问题的一般 一. Php的性能问题的解决方向 Php语言级的性能优化 php周边问题的性能优化 php语言自身分析,优化 二. 压力测试工具简介 Apache Benchmark (ab) 简介:ab是由apache提供的压力测试软件,安装apache服务器是会自带该压力软件。 如何使用: ./ab -n100 -c100 http://www.baidu.com -n请求数 -c并发数 url目标测压地址 三. Php语言级性能优化 1).优化点:少写代码,多用php自身能力 性能问题: 自写代码冗余量较多,可读性不佳,并且性能低 为什么性能低? Php代码需要编译解析为底层语言,这一过程每次请求都会吃力一遍,开销大 好的方法: 多使用php内置变量、常量、函数 2).优化点:php内置函数的性能优化 情况描述: Php的内置函数之间存在快慢差异 好的建议: 多去了解php的内置函数的时间复杂度 3).优化点:尽可能少用魔法函数 time php good.php 查看user项 4).化点:产生额外开销的错误抑制符@(不使用) 5).优化点:合理使用内存 利用unset()及时释放不使用的内存(注意:unset注销不掉的情况) 6).优化点:尽量少的使用正则表达式,优化正则表达式 7).优化点:避免在循环内做运算 $strlen = strlen($str); For($i=0;$i <= $strlen;$i++){ } 8).优化点:减少密集型业务 Php语言特性决定了php不太适合做大数据量运算 Php适合衔接webserver与后端服务、UI呈现 也就说文本处理 9).优化点:务必使用带引号的字符串做键值 四.Php周边问题的性能优化 Php 周边都有什么? Linux运行环境 硬盘->文件存储 数据库 软硬结合的缓存机制 当通过网络连接周边环境时(网络也是一点) 1).减少文件类的操作 常见的php场景的开销次序: 读写磁盘、读写数据库、读写内存、读写网络数据 读写内存 << 读写数据库 (内存要小于磁盘)< 读写磁盘 < 读写网路数据 2).优化网络请求 网络请求的坑: 1.对方接口的不确定因素 2.网络的稳定性 如何优化网络请求: 1、 设置超时时间 a)连接超时 200ms b)读超时 800ms c)写超时 500ms 2、将串请求并行化 a)使用curl_multi_*() b)使用swoole扩展 3).压缩php接口输出 如何压缩 使用Gzip即可 压缩输出的利与弊? 利:利于我们的数据输出 client断能更快获得数据 弊:额外的cpu开销 4).缓存重复计算内容 什么况下输出内容的缓存? 请求多次,内容不变的情况下 多用模板请求模块 smarty开启caching 5).旁路方案 后一个任务不强依赖前一个任务 五.php性能瓶颈解决办法 Opcode a92c cache :php扩展apc Pecl.php.net php官方站点 扩展实现:通过php扩展代替原php代码中高频逻辑 Runtime优化:HHVM
相关文章推荐
- PHP设计模式——迭代模式
- php函数
- PHP 之 FastCGI 与 mod_php 详解
- 【自用】bat ftp下载前一天备份
- php cli配置文件问题
- PhpStorm 配置IDE
- PHP中spl_autoload_register函数的用法
- php 中的each()和list()
- php 框架 yii control 中使用布局
- PHP导出CSV案列
- Yii2中应用子模块下的内容
- php上传$_FILES 无法取值
- (一) Laravel学习笔记之构造服务端API——数据填充//待完善V1.0版
- zend studio如何使用wamp集成环境
- PHP IDE phpstorm 快捷键
- PHP 自定义字符串中的变量名解析
- SecurityContextPersistenceFilter
- C: Run a System Command and Get Output? 在C程序中调用工具,并且得到结果。
- UltraEdit用Ftp连unix服务器常用配置
- PHP将HTML转换成各种格式图片或PDF