性能与缓存

性能与缓存

v1.5.2 减少重复扫描、内容下载与磁盘写入。缓存默认启用,无需增加 cacheEnabled 或 cacheTTL 配置。

内容什么时候更新

事件 行为
首次启动 克隆或更新 Git 仓库,完成后预热菜单
定时同步,没有提交变化 保留菜单与文章缓存
同步到新提交 失效相关缓存,重新预热菜单
普通配置变更 重载配置并刷新内容版本
重启 创建新的服务实例版本,重新建立缓存

浏览器在页面加载与文章访问时检查内容版本。版本不变时复用菜单、配置与文章;已经打开的正文不会自动实时替换,同步完成后重新打开文章或刷新页面即可查看更新。

配置变更边界

站点标题、排序和首页等普通配置可以重载。修改仓库地址、分支、监听端口或环境变量后需要重启。容器只读挂载配置时,在宿主机修改文件;采用替换文件的编辑方式后,应确认容器内看到的新内容。

静态资源与 PDF

JS/CSS 使用内容哈希 URL。哈希匹配的资源可以长期缓存,升级后会使用新的 URL。代理应保留应用返回的缓存头。

PDF 只渲染可见和附近页面,最多同时执行两个渲染任务;离屏画布与离开页面后的任务会被释放。首次下载 PDF 文件仍取决于文件大小和网络。

访问统计

重复打开缓存文章仍会通过轻量请求增加访问次数。统计在内存累积,每 5 秒原子写入,正常退出时保存剩余数据。强制终止或断电可能丢失最后约 5 秒的统计。

统计与 Git 缓存是单进程文件存储。多个实例不要同时写入同一数据目录或 Git 工作目录;多实例统一统计需要另行设计共享存储。

如何观察

在浏览器开发者工具的 Network 面板查看 /api/version、菜单和文章请求。相同版本的重复访问应减少菜单和正文下载。不要开启「Disable cache」来验证正常缓存效果。

更多排查步骤见 常见问题。