Opera torrent 下载占用全部内存 - 未发现任何有害进程

Opera torrent 下载占用全部内存 - 未发现任何有害进程

我正在使用 StackExchange 数据转储下载 torrent。大约完成了 40%,今天当我单击恢复时,计算机死机了,并且大约 30 分钟无法使用。

几分钟后,进程资源管理器打开了,我发现内存消耗达到了 95%(从 3GB 开始),这解释了为什么处理每个点击都需要这么长时间。但是,尽管我显示了所有进程,但我找不到任何占用如此多内存的进程。Opera 本身占用了大约 150MB。在内存使用率和 CPU 消耗方面,Avast 几乎是无形的。

我的机器有 3GB RAM 和 Windows7 64 位。杀毒软件是 Avast。数据转储大约有 11GB。

什么进程会导致 torrent 文件检查阶段占用如此多的内存?此进程在 show-processes-of-all-users 模式下不可见。

答案1

抓住名为 的 SysInternal 工具RAMMap

你的记忆正在被所谓的内存映射文件。这是因为操作系统根据进程的请求将大文件的一部分加载到内存中以供访问,因为对于随机请求来说,这比反复寻找磁盘上文件中的位置要高效得多。

Torrent 程序很多随机访问文件,所以我愿意打赌 Opera Torrent mmaps (记忆映射) 其文件;老实说,这对于 torrent 客户端来说是最好的事情。

这里的问题是,在文件检查期间,Opera Torrent 将按顺序访问整个文件。这会导致 Windows 将整个文件加载到内存中,或者尝试这样做。通常,它只将正在下载的文件块保存在内存中,但现在所有内存都被使用了,因为 Windows 认为 Opera Torrent 需要将整个文件保留在内存中。

mmapped 文件不归属于 Opera Torrent 的原因是 mmapped 文件在进程之间共享。当然,Opera Torrent 可能已请求将文件进行内存映射,但如果您使用 7Zip 打开它,那么它将可以访问相同的内存映射文件。无需浪费内存加载两次!但现在,谁“拥有”该文件?

相关内容