为什么 Google Chrome 保留 TB 级虚拟内存?

为什么 Google Chrome 保留 TB 级虚拟内存?

我的系统最近运行缓慢,我检查htop以确定资源消耗。RESColumn213M对于 chrome 来说是很正常的。看完VIRT专栏后我很惊讶,Google Chrome 竟然被采用了1.1T!!!

我杀掉 chrome 并再次打开,它仍然使用1.1TVIRT 内存。如果“Higher”VIRT不正常并且需要修复,任何指针都会有所帮助。

笔记本电脑硬件详细信息。

Processor Intel® Core™ i3-4005U CPU @ 1.70GHz × 4 
Graphics NVD7 / Intel® HD Graphics 4400 (HSW GT2)
Memory 7.7 GiB
Disk Capacity 740.2 GB
// uname -srvmpio
Linux 5.13.0-41-generic #46~20.04.1-Ubuntu SMP Wed Apr 20 13:16:21 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
// Google Chrome version
Version 102.0.5005.61 (Official Build) (64-bit)

谷歌浏览器占用1.1T虚拟内存

答案1

这是因为 Chrome 的一项名为“笼式指针”的安全功能。这个想法是,你将所有 Javascript 对象放入这个巨大的虚拟地址空间中,并将所有浏览器私有的东西放入其中,然后你可以轻松检测是否有人试图突破 Javascript 沙箱。

https://docs.google.com/document/d/1HSap8-J3HcrZvT7-5NsbYWcjfc0BVoops5TDHZNsnko/edit

答案2

请忽略VIRT。我从未使用过或见过任何人使用或关注它。

基本上没什么意义。不知道为什么top/htop仍然显示它。

Mugurel Sumanariu 曾经写道关于它

VIRT代表进程的虚拟大小,它是它实际使用的内存、它映射到自身的内存(例如 X 服务器的显卡 RAM)、磁盘上已映射到它的文件(大多数特别是共享库),以及与其他进程共享的内存。 VIRT 表示程序当前能够访问多少内存。

(在禁用内存过量使用的系统上,这可能意味着某些事情,但您不想使用这样的系统)。

相关内容