性能优化指南
Performance Optimization Guide
缓存优化
启用缓存
缓存是提高性能的关键。系统支持两种缓存方式:
- 文件缓存(默认)
- 无需额外配置 - 适合小型博客
- Redis 缓存(推荐)
- 性能更好
- 支持分布式部署
- 配置方式见 docs/CONFIGURATION.md
缓存配置
在 .env 文件中配置:
CACHE_ENABLED=true
CACHE_TYPE=auto # 自动探测,优先使用 Redis
CACHE_TTL=3600 # 缓存生存时间(秒)
缓存统计
查看缓存命中率:
$cache = new CacheService();
$stats = $cache->getStats();
echo "命中率: " . ($stats['hits'] / ($stats['hits'] + $stats['misses']) * 100) . "%";
CDN 优化
已实现的优化
- 版本号控制: 所有资源文件都添加了版本号参数
- CDN 回退: 主 CDN 失败时自动使用备用 CDN
- 资源懒加载: JavaScript 使用
defer属性
进一步优化建议
- 使用本地 CDN 镜像(如果需要)
- 合并 CSS/JS 文件(减少 HTTP 请求)
- 启用 Gzip 压缩
数据库优化
当前系统不使用数据库,所有内容基于文件系统。
文件系统优化
- 使用 SSD: 提高文件读取速度
- 文件索引: 考虑使用文件系统索引
- 避免深层目录: 保持目录结构扁平
服务器优化
PHP 配置
; 启用 OPcache
opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=10000
; 调整内存限制
memory_limit=256M
; 启用 Gzip
zlib.output_compression=On
Web 服务器配置
Nginx
# 启用 Gzip
gzip on;
gzip_types text/css application/javascript application/json;
# 缓存静态文件
location ~* \.(css|js|jpg|jpeg|png|gif|ico|svg)$ {
expires 1y;
add_header Cache-Control "public, immutable";
}
Apache
# 启用压缩
LoadModule deflate_module modules/mod_deflate.so
<Location />
SetOutputFilter DEFLATE
</Location>
# 缓存静态文件
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType text/css "access plus 1 year"
ExpiresByType application/javascript "access plus 1 year"
</IfModule>
监控和测量
性能指标
- 页面加载时间: 目标 < 2 秒
- 缓存命中率: 目标 > 80%
- Lighthouse 分数: 目标 > 90
测量工具
- 浏览器 DevTools: Network 和 Performance 面板
- Lighthouse: Chrome DevTools 内置
- WebPageTest: 在线性能测试工具
最佳实践
- 启用缓存: 始终启用缓存
- 使用 Redis: 如果可用,优先使用 Redis
- 优化图片: 压缩图片,使用现代格式
- 减少 HTTP 请求: 合并资源文件
- 使用 CDN: 外部资源使用 CDN
- 定期清理: 清理旧的缓存文件
故障排查
如果遇到性能问题:
- 检查缓存是否启用
- 查看缓存命中率
- 检查服务器资源使用情况
- 使用性能分析工具定位瓶颈
更多信息请参考 docs/TROUBLESHOOTING.md。