Chromium通过HTTP头缓存的默认最大容量是多少?Electron如何修改该值?
缓存问题解答
1. 默认最大缓存容量
你设置的Cache-Control: max-age=31536000、Expires: 31536000响应头命中的是Chromium内核的磁盘缓存,Chrome Web端和Electron平台的默认规则完全一致:
- 容量默认取用户数据目录所在磁盘剩余可用空间的10%作为上限
- 同时存在固定上下限约束:最低不小于16MB,最高不超过512MB
当缓存总大小超出上限时,Chromium会自动按LRU(最近最少使用)规则淘汰旧缓存,优先保留最近访问过的资源。
2. Electron修改最大缓存大小的方法
可以修改,但是相关API仅在Electron主进程暴露,不能直接在渲染进程的前端JS中调用,有两种常用实现方案:
方案1:启动时全局指定缓存大小
在应用ready事件触发前,通过命令行参数配置全局磁盘缓存容量,单位为字节,示例代码如下:
const { app } = require('electron') // 示例:设置缓存上限为1GB app.commandLine.appendSwitch('disk-cache-size', '1073741824') app.whenReady().then(() => { // 窗口创建等后续逻辑 })
方案2:运行时动态调整缓存大小
Electron 9及以上版本支持通过session模块的setCacheSize方法动态调整指定会话的缓存容量,示例代码如下:
const { session } = require('electron') // 示例:将默认会话的缓存上限调整为2GB async function modifyCacheSize() { await session.defaultSession.setCacheSize(2 * 1024 * 1024 * 1024) }
如果需要从渲染进程触发缓存大小调整,可通过IPC通道向主进程发送请求,由主进程调用上述API完成操作。
内容的提问来源于stack exchange,提问作者DengSihan
相关产品推荐
相关产品推荐

