性能优化指南

性能优化指南

Performance Optimization Guide

缓存优化

启用缓存

缓存是提高性能的关键。系统支持两种缓存方式:

  1. 文件缓存(默认)

- 无需额外配置 - 适合小型博客

  1. 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 优化

已实现的优化

  1. 版本号控制: 所有资源文件都添加了版本号参数
  2. CDN 回退: 主 CDN 失败时自动使用备用 CDN
  3. 资源懒加载: JavaScript 使用 defer 属性

进一步优化建议

  1. 使用本地 CDN 镜像(如果需要)
  2. 合并 CSS/JS 文件(减少 HTTP 请求)
  3. 启用 Gzip 压缩

数据库优化

当前系统不使用数据库,所有内容基于文件系统。

文件系统优化

  1. 使用 SSD: 提高文件读取速度
  2. 文件索引: 考虑使用文件系统索引
  3. 避免深层目录: 保持目录结构扁平

服务器优化

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

测量工具

  1. 浏览器 DevTools: Network 和 Performance 面板
  2. Lighthouse: Chrome DevTools 内置
  3. WebPageTest: 在线性能测试工具

最佳实践

  1. 启用缓存: 始终启用缓存
  2. 使用 Redis: 如果可用,优先使用 Redis
  3. 优化图片: 压缩图片,使用现代格式
  4. 减少 HTTP 请求: 合并资源文件
  5. 使用 CDN: 外部资源使用 CDN
  6. 定期清理: 清理旧的缓存文件

故障排查

如果遇到性能问题:

  1. 检查缓存是否启用
  2. 查看缓存命中率
  3. 检查服务器资源使用情况
  4. 使用性能分析工具定位瓶颈

更多信息请参考 docs/TROUBLESHOOTING.md

← 返回目录