php流程
php语句=》(sender底层)=》sender语法=》(解析)=》opcodes=》(执行)=》输出
1、ab 命令 压力测试
yum -y install httpd-tools
ab -n100 -c10 http://www.baidu.com/
XHprof PHP性能测试工具
linux 安装xhprof 自己可以在网上找个教程看看,
php --ri xhprof 检测命令
2、尽量使用内置函数
语法少,因为是内置的,易于理解
3、内置函数之间的性能选择
不同的内置函数之间,用法不同,速度也不同,要根据业务的需求选择合适的内置函数
此时可以使用 time php a.php 查看php命令执行时间,主要看user
4、减少只用魔法函数,如__get
5、少用@错误抑制符
懒人用法,抑制错误输出,会增加opcodes
6、合理的使用内存,释放内存
例如使用unset ,close,需要保持长时间的,可存于内存中
7、尽量少的使用正则表达式
8、避免在循环内做运算
例如
//这个for循环,每循环一次就要strlen()一次,明显不高效;
$str=”hello world”;
for($i=0l$<strlen($str);$i++)
{
// do something
}
//这样写,才显得高效
$str=”hello world”;
$strlen=strlen($str);
for($i=0;$i<$strlen;$i++)
{
//do somethig
}
9、PHP不适合在大数据运算
是由语言特性决定的,适合在Webserver与后端服务,UI呈现
10、减少文件类操作
读写内存(运行内存)<< 读写数据库 < 读写磁盘(硬盘)<读写网咯数据
原因: 1、php是在运行内存中运行的,、
- 写入数据库实际是写入内盘后再写入数据库
- 简单数据的数据库操作要远低于读磁盘(实测所得)
- 网络数据有网络延迟的可能
- 优化网络请求
- 设置超时时间
- 将串行请求并行化
a、使用curl_multi_*()
b、使用swoole扩展(重点)