服务优化之三(php优化概述)
来源:互联网 发布:开源的推荐系统算法库 编辑:程序博客网 时间:2024/06/03 13:26
一、善用工具
1.ab压力测试工具
./ab -n1000 -c100 http://baidu.com -n 请求数 -c 并发数
详细可参看:http://www.php.cn/php-class-code-337971.html
2. 善用php的代码查看扩展 vld
scanner
*.php ---------- exprs
|
| parser
exec |
output --------- opcodes
查看php中的opcode
php -dvld.active=1 -dlvd.execute=0 test.php
详细请参看:http://blog.csdn.net/21aspnet/article/details/7002644
3. 使用xhporf扩展查看性能瓶颈
主要查看:红色的区块图 和 最粗的那条调用路线的优化
详细请参看:http://blog.csdn.net/ebw123/article/details/50239785
二、语言层面
1. 前面提及多用语言结构代替函数
isset() 和 array_key_exists 查看2. 减少使用php使用魔法函数
linux下使用命令 time php5 ./test.php
看 user 时间开销 魔法函数会更耗时
3. 禁用错误抑制符@
实际在 @ 的代码行前后增加 opcode,设置报错级别为0,增加系统开销,不利于错误定位4. 合理使用内存
unset() 掉不要的变量(unset注销不掉的情况)尽量少用正则表达式
5. 避免在循环中做运算
减少计算密集型业务务必使用带引号字符串做键值,减少常量查找开销
6. 减少文件类操作
读写网络数据 > 读写磁盘 > 读写数据库 >> 读写内存7. 压缩php输出
使用gizp压缩(会增加 额外的cpu开销,大于100k 重复内容较多 压缩效果会好,否则不建议)8. php缓存复用
redis缓存(计算 数据处理)9.少写代码
多用php自身函数和内置变量、常量,(php语言解析成C,C要解析成汇编,会造成系统开销)三、并行计算
1.设置超时时间
连接超时 200ms
读超时 800ms
写超时 500ms
2.串行请求并行化 (重叠时间窗口)
使用curl_multi_*
curl_multi_add_handle
curl_multi_close
curl_multi_exec
curl_multi_getcontent
curl_multi_info_read
curl_multi_init
curl_multi_remove_handle
curl_multi_select
curl_multi_setopt
curl_multi_strerror
3. 使用swoole扩展
详细查看:http://www.swoole.com/
阅读全文
1 0
- 服务优化之三(php优化概述)
- 性能优化之PHP优化
- 性能优化之PHP优化
- MySQL优化之三--Mysql服务参数配置
- MySQL查询优化之概述
- Hbase优化之三
- 服务优化之二(使用php语言结构代替函数)
- php之mysql优化
- PHP之性能优化
- LAMP服务器性能优化技巧之加速PHP【篇三】
- 优化windows注册表之(三),优化网上邻居
- MySQL 数据库性能优化之(三)索引优化
- 【Day61】MySQL数据库性能优化之三(索引优化)
- 【SQL优化】MySQL优化(概述)
- C程序优化之路(三)
- C程序优化之路(三)
- MultiDex(三)之异步加载优化
- Android性能优化之三 数据格式优化
- Mysql 常用命令
- JS实现识别电脑浏览器和手机浏览器
- 图像处理5:opencv绘图
- C#展示Excel表格
- Android:Butter Knife 框架——最好用的View注入
- 服务优化之三(php优化概述)
- java使用freemark生成pdf
- Rails link_to 和 button_to 的区别
- HTML5功能检测
- spring中使用stomp协议进行长连接通信
- 剑指Offer之面试题3:二维数组中的查找
- 日志采集、同步,时间同步
- ES PS TS 流的区别
- Linux CentOS中使用yum install 命令报错Could not retrieve mirrorlist...