服务优化之三(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/





原创粉丝点击