PHP性能优化实战:告别缓慢脚本
引言
PHP依然是Web开发的中流砥柱,但性能问题常成为瓶颈。本文将分享4个立竿见影的优化技巧,助你提升脚本执行效率。
1. OPcache:必开的加速器
启用Zend OPcache可缓存预编译脚本,降低CPU负载:
// php.ini 配置
opcache.enable=1
opcache.memory_consumption=128 // 分配128MB内存
opcache.validate_timestamps=0 // 生产环境关闭时间戳验证
2. 解决N+1查询问题
ORM中常见性能陷阱,使用预加载(Eager Loading)优化:
// 错误:循环中执行查询(N+1)
$users = User::all();
foreach ($users as $user) {
echo $user->profile->name; // 每次循环都查询
}
// 正确:预加载关联数据
$users = User::with('profile')->get(); // 1次查询解决
3. 生成器处理大数据集
避免内存溢出,用yield流式处理大量数据:
function readLargeFile($path) {
$file = fopen($path, 'r');
while (!feof($file)) {
yield fgets($file); // 逐行读取,内存恒定
}
fclose($file);
}
foreach (readLargeFile('data.csv') as $line) {
processLine($line);
}
4. 避免重复创建对象
高频循环内减少对象实例化:
// 低效:每次循环创建新对象
foreach ($items as $item) {
$logger = new Logger(); // 重复实例化
$logger->log($item);
}
// 优化:对象复用
$logger = new Logger(); // 单次实例化
foreach ($items as $item) {
$logger->log($item);
}
结语
关键优化原则:
- 必开OPcache
- 数据库查询做批量处理
- 大数据用生成器替代数组
- 高频操作避免资源重复创建