1.php性能问题大概是整个项目问题的40%左右。
2.可以使用apache内置的压力测试工具ab进行压力测试。
3.如果可以,尽量使用php内置函数,变量等处理逻辑。
//性能测试小试(生成两个数组,合并数组,并且去除重复的),通过执行时间可以看出性能差别
$start_time = microtime(true);
//这是垃圾代码,用了很多循环 循环执行时间为:0.13975310325623 s
$array1 = [];
$array2 = [];
for($i=0;$i<=10000;$i++){
$array1[]= rand();
}
for($i=0;$i<=10000;$i++){
$array2[]= rand();
}
$array3 = $array1;
foreach ($array2 as $v2){
if(!in_array($v2,$array3)){
$array3[] = $v2;
}
}
//这是相对好代码,用了比较多内置函数 循环执行时间为:0.00053191184997559 s
$array1 = $array2 = range(1000,11000);
shuffle($array1);
shuffle($array2);
$array3 = array_merge($array1,$array2);
$end_time = microtime(true);
echo '循环执行时间为:'.($end_time-$start_time).' s';
4.尽量减少使用魔术函数和错误抑制符,在php引擎编译和解析时会有性能开销,没有实测。
5.内存不用时及时释放,合理使用正则(回溯导致性能开销大)。
6.减少循环内的操作数据库和复杂计算,如果业务允许,尽量放在循环外(项目中优化过一个接口,性能提高80%以上)。
7.尽量不用php做密集型业务计算(换句话说php不擅长做高并发和大数据处理)。