我已将其设置HKEY_CURRENT_USER\Software\Policies\Google\Chrome\DiskCacheSize
为(32 MiB)DWORD
的值0x2000000
,但是当我检查我的配置文件中的文件夹大小时Cache
,我看到其大小为 282 MiB。
为什么会这样?是错误,还是我没有在注册表中设置正确的值?
答案1
更改 Chrome 缓存大小
缓存大小不是固定的;相反,它可以动态改变:
默认大小在开始时计算,取决于缓存所在卷的可用磁盘空间。
我们尽量使用至少 80 [MiB],然后慢慢增加大小,直到上限约为 320 [MiB](免费 32 [GiB])。
当然,这可能会根据总体测量性能而发生变化。
上述行为在 版本中仍然适用35.0.1916.153
。缓存大小还将决定缓存文件的最大大小,即总字节数的 1/8。任何大于此大小的文件都不会缓存在磁盘上。
Chrome 不提供通过用户界面更改其缓存大小的方法。为了覆盖默认限制,您需要使用特定的开关/标志或启用组策略设置。
在继续之前,请确保清空整个缓存,然后关闭浏览器。要检查更改是否已成功应用,您可以使用此内部页面:
chrome://net-internals/#httpCache
使用命令行开关
复制 Google Chrome 应用程序快捷方式,并将其粘贴到桌面。
右键单击粘贴的快捷方式,然后选择特性从上下文菜单中。
编辑目标字段末尾添加一个空格字符和以下开关:
--disk-cache-size=<amount in bytes>
例如,设置 32密布限制(33554432 字节)结尾部分应如下所示:
chrome.exe --disk-cache-size=33554432
点击好的应用更改。每当您需要启动 Chrome 时,请使用修改后的快捷方式。
通过组策略编辑器
笔记以下步骤适用于 Windows Vista 及更高版本。仅支持 Business/Professional/Pro 或更高版本。
使用管理员帐户登录。
下载官方策略模板。
打开下载档案(例如使用7-Zip)。导航到该
windows
文件夹,并将该admx
文件夹解压到某处。该
admx
文件夹包含以文化名称其中包含本地化字符串。还有一个chrome.admx
文件是实际模板。将其复制到PolicyDefinitions
文件夹中,该文件夹通常位于此处:C:\Windows\PolicyDefinitions
chrome.adml
然后将与系统区域设置相匹配的本地化文件复制到相应的PolicyDefinitions
子文件夹中。开始
gpedit.msc
。导航计算机配置 > 管理模板 > Google > Google Chrome。
双击设置磁盘缓存大小(以字节为单位)设置,启用它,然后选择所需的金额。点击好的当你完成的时候。
至少是 Windows XP SP2。
配置 Google Chrome 用于在磁盘上存储缓存文件的缓存大小。
如果您设置此策略,Google Chrome 浏览器将使用提供的缓存大小,无论用户是否指定了该
--disk-cache-size
标志。此策略中指定的值不是硬性界限,而是对缓存系统的建议,任何低于几兆字节的值都太小,将四舍五入为合理的最小值。如果此策略的值为
0
,则将使用默认缓存大小,但用户将无法更改它。如果未设置此策略,则将使用默认大小,并且用户可以使用标志覆盖它
--disk-cache-size
。
附加信息
如果缓存文件夹占用的空间比报告的要多,则意味着有一些残留文件。清除它们的最简单方法是关闭浏览器,然后手动删除所有缓存文件。下次启动浏览器时将创建一个全新的缓存。
当涉及到组策略时,不支持手动编辑注册表:
注意:从 Chrome 28 开始,策略直接从 Windows 上的组策略 API 加载。手动写入注册表的策略将被忽略。请参阅http://crbug.com/259236了解详情。
从 Google Chrome 35 开始,如果工作站加入到 Active Directory 域,则直接从注册表中读取策略;否则从 GPO 中读取策略。
这可以通过以下方式确认进程监控。无论有意还是无意,都存在一些例外情况:
HKEY_CURRENT_USER\Software\Policies\Google\Chrome\MetricsReportingEnabled
HKEY_CURRENT_USER\Software\Policies\Google\Chrome\UserDataDir
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome\MetricsReportingEnabled
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome\UserDataDir
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Update\Update{8A69D345-D564-463c-AFF1-A69D9E530F96}
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Update\UpdateDefault
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Policies\Google\Chrome\MetricsReportingEnabled
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Policies\Google\Chrome\UserDataDir
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Policies\Google\Update\Update{8A69D345-D564-463c-AFF1-A69D9E530F96}
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Policies\Google\Update\UpdateDefault
除了主 HTTP 缓存之外,Chrome 还使用其他会占用额外空间的文件夹:
Application Cache
HTML5 简介应用程序缓存GPUCache
-图形处理器 着色器缓存IndexedDB
HTML5 简介索引数据库Media Cache
- 多媒体优化缓存(音频和视频剪辑)Local Storage
/Session Storage
-Web 存储缓存PnaclTranslationCache
-便携式本机客户端翻译缓存
可以使用开关或启用相关策略设置将媒体缓存限制为固定的字节数。您无法真正限制应用程序缓存或 GPU 着色器缓存;您只能通过开关禁用它们。其余部分无法调整。
进一步阅读
测试缓存限制
这是我在运行以下测试之前遵循的程序:
- 安装 Chrome。
- 确保存储文件夹的卷
Cache
有超过 32 GiB 的可用空间。 - 将主页设置为,
about:blank
以防止启动时出现脏缓存。 - 清除所有缓存的图片和文件刚开始的时候。
- 关闭浏览器。
所有结果均针对34.0.1847.137
在 Windows 7 SP1 x86(32 位)上运行的 Chrome 版本。每次测试前都会清空缓存,使用最新版本的 Chrome 时缓存行为没有明显差异。
批处理脚本
为了自动化测试,我创建了一个批处理脚本:
@echo off
setlocal
setlocal enabledelayedexpansion
set exePath=%localappdata%\Google\Chrome\Application
if not "%~1" == "" (
start "%~n0" /d "%exePath%" "chrome.exe" "%~1"
pause >nul
)
pushd "%~dp0"
set /a counter=1
for /f "usebackq" %%G in (`findstr /i "^https*://" "samples.txt"`) do (
echo Load sample !counter!
start "%~n0" /d "%exePath%" "chrome.exe" "%%~G"
set /a counter += 1
pause >nul
)
popd
endlocal
pause & exit /b
它只有一个参数,用于使用特定标志启动 Chrome。该脚本解析文件samples.txt
,收集所有 URL 并一次打开一个。当每个示例完成加载和渲染后,按任意键加载下一个示例。可执行路径可能需要调整。
测试 A1
测试的目的是检查最大缓存大小是否是真正的界限。最快的证明方法是加载一些充满图片的网站:只要内容足够多,你就会很快达到缓存限制。
标志
没有任何
示例
http://www.tumblr.com/search/gif+1
http://www.tumblr.com/search/gif+2
http://www.tumblr.com/search/gif+3
http://www.tumblr.com/search/gif+4
http://www.tumblr.com/search/gif+5
http://www.tumblr.com/search/gif+6
http://www.tumblr.com/search/gif+7
http://www.tumblr.com/search/gif+8
结果
加载数百个文件后,缓存大小为334128469
字节(约 318.65 MiB)。修剪计数器设置为0x15c
,这意味着超过 300 个最旧的条目被丢弃,以便为新条目腾出空间。
Cache type: Blockfile Cache
Create error: 0x0
Create hit: 0xa8
Create miss: 0x0
Current size: 334128469
Doom cache: 0x0
Doom entry: 0x3c
Doom recent entries: 0x0
Entries: 833
Fatal error: 0x0
Get rankings: 0x0
Invalid entry: 0x0
Last report: 0x2e5b3bec502446
Last report timer: 0x0
Max entries: 0x1a
Max size: 335544320
Open entries: 0x9
Open hit: 0x34
Open miss: 0xad
Open rankings: 0x39c68
Pending IO: 0
Read data: 0x4db
Resurrect hit: 0x2
Size00: 0x0000052f
Size01: 0x00000005
Size02: 0x00000017
Size03: 0x00000014
Size04: 0x00000002
Size05: 0x00000001
Size06: 0x00000004
Size07: 0x00000005
Size08: 0x00000002
Size09: 0x00000003
Size10: 0x00000004
Size11: 0x00000009
Size12: 0x0000001a
Size13: 0x00000019
Size14: 0x00000012
Size15: 0x00000006
Size16: 0x00000020
Size17: 0x00000013
Size18: 0x00000012
Size19: 0x00000032
Size20: 0x00000074
Size21: 0x00000083
Size22: 0x00000000
Size23: 0x00000000
Size24: 0x00000000
Size25: 0x00000000
Size26: 0x00000000
Size27: 0x00000000
Timer: 0xe
Trim entry: 0x15c
Write data: 0x4c171
unused: 0x0
测试 A2
与测试 A1 类似,但有一点不同:缓存限制为 32 MiB。
标志
--disk-cache-size=33554432
示例
与测试 A1 相同。
结果
缓存总大小达到约 31.74 MiB。与测试 A1 相比,更严格的限制会生成更少的缓存条目,而丢弃的条目会更多。
Cache type: Blockfile Cache
Create error: 0x0
Create hit: 0xb6
Create miss: 0x0
Current size: 33280014
Doom cache: 0x0
Doom entry: 0x2f5
Doom recent entries: 0x0
Entries: 139
Fatal error: 0x0
Get rankings: 0x0
Invalid entry: 0x0
Last report: 0x2e5b3c19894813
Last report timer: 0x0
Max entries: 0x18
Max size: 33554432
Open entries: 0x9
Open hit: 0x4f
Open miss: 0xb9
Open rankings: 0x34e76
Pending IO: 0
Read data: 0x4d6
Resurrect hit: 0x1
Size00: 0x000000e5
Size01: 0x00000005
Size02: 0x00000010
Size03: 0x00000006
Size04: 0x00000000
Size05: 0x00000001
Size06: 0x00000003
Size07: 0x00000003
Size08: 0x00000001
Size09: 0x00000002
Size10: 0x00000002
Size11: 0x00000000
Size12: 0x00000002
Size13: 0x00000003
Size14: 0x00000001
Size15: 0x00000002
Size16: 0x00000006
Size17: 0x00000008
Size18: 0x00000002
Size19: 0x00000006
Size20: 0x00000010
Size21: 0x0000000a
Size22: 0x00000000
Size23: 0x00000000
Size24: 0x00000000
Size25: 0x00000000
Size26: 0x00000000
Size27: 0x00000000
Timer: 0xe
Trim entry: 0x2fc
Write data: 0x4239f
unused: 0x0
测试 B1
在将缓存缩小到 32 MiB 的同时,加载了五个图像样本。它们的大小范围从 16 MiB 到 1 MiB,每次减半,减去 0.5% 以考虑舍入误差。例如,要搜索 15.92 MiB 的图像,我使用了以下搜索查询:
jpeg "file size 15.92 mb" site:wikimedia.org
由于缓存设置为 32 MiB,因此每个条目限制为 4 MiB。
标志
--disk-cache-size=33554432
示例
http://upload.wikimedia.org/wikipedia/commons/b/ba/Langesund_og_Lang%C3%B8ya_01.jpg
http://upload.wikimedia.org/wikipedia/commons/9/9d/Balloons_of_Happiness.jpg
http://upload.wikimedia.org/wikipedia/commons/1/1e/Kannonzaki_01.jpg
http://upload.wikimedia.org/wikipedia/commons/5/51/Fraser_Ship_Yard_tug_boat%3B_Superior_WI_-b.jpg
http://upload.wikimedia.org/wikipedia/commons/4/46/Val%C3%A8ncia_micalet.jpg
结果
在五个样本中,只有三个真正被缓存了。
Cache type: Blockfile Cache
Create error: 0x0
Create hit: 0x5
Create miss: 0x0
Current size: 7305845
Doom cache: 0x0
Doom entry: 0x2
Doom recent entries: 0x0
Entries: 3
Fatal error: 0x0
Get rankings: 0x0
Invalid entry: 0x0
Last report: 0x2e5b3c78282e93
Last report timer: 0x0
Max entries: 0x0
Max size: 33554432
Open entries: 0x0
Open hit: 0x0
Open miss: 0x5
Open rankings: 0xa
Pending IO: 0
Read data: 0x0
Resurrect hit: 0x0
Size00: 0x00000006
Size01: 0x00000000
Size02: 0x00000000
Size03: 0x00000000
Size04: 0x00000000
Size05: 0x00000000
Size06: 0x00000000
Size07: 0x00000000
Size08: 0x00000000
Size09: 0x00000000
Size10: 0x00000000
Size11: 0x00000000
Size12: 0x00000000
Size13: 0x00000000
Size14: 0x00000000
Size15: 0x00000000
Size16: 0x00000000
Size17: 0x00000000
Size18: 0x00000000
Size19: 0x00000000
Size20: 0x00000001
Size21: 0x00000001
Size22: 0x00000001
Size23: 0x00000002
Size24: 0x00000000
Size25: 0x00000000
Size26: 0x00000000
Size27: 0x00000000
Timer: 0x1
Trim entry: 0x0
Write data: 0x1e74
unused: 0x0
测试 B2
与没有缓存调整标志的测试 B1 类似。
标志
没有任何
示例
与测试 B1 相同。
结果
与测试 B1 不同,所有五个样本都进行了缓存。缓存大小达到约 30.84 MiB,这是预期的数量。
Cache type: Blockfile Cache
Create error: 0x0
Create hit: 0x5
Create miss: 0x0
Current size: 32341906
Doom cache: 0x0
Doom entry: 0x0
Doom recent entries: 0x0
Entries: 5
Fatal error: 0x0
Get rankings: 0x0
Invalid entry: 0x0
Last report: 0x2e5b3c6aae7b97
Last report timer: 0x0
Max entries: 0x0
Max size: 335544320
Open entries: 0x0
Open hit: 0x0
Open miss: 0x5
Open rankings: 0x4
Pending IO: 0
Read data: 0x0
Resurrect hit: 0x0
Size00: 0x0000000a
Size01: 0x00000000
Size02: 0x00000000
Size03: 0x00000000
Size04: 0x00000000
Size05: 0x00000000
Size06: 0x00000000
Size07: 0x00000000
Size08: 0x00000000
Size09: 0x00000000
Size10: 0x00000000
Size11: 0x00000000
Size12: 0x00000000
Size13: 0x00000000
Size14: 0x00000000
Size15: 0x00000000
Size16: 0x00000000
Size17: 0x00000000
Size18: 0x00000000
Size19: 0x00000000
Size20: 0x00000001
Size21: 0x00000001
Size22: 0x00000001
Size23: 0x00000001
Size24: 0x00000001
Size25: 0x00000000
Size26: 0x00000000
Size27: 0x00000000
Timer: 0x1
Trim entry: 0x0
Write data: 0x2c6a
unused: 0x0