获取内存映射文件的名称

问题描述

我有一个Windows主机,据rammap称,几乎所有内存都在映射文件中。我试图找出导致此类泄漏的文件。所有可用指南均建议使用“文件摘要”选项卡找出文件与映射文件间的连接。但是没有任何文件占用如此大数量的映射文件内存。

有没有办法找出应归咎于哪个文件?我猜想像rammap这样的sysinternals工具已经在使用Windows api函数,因此,如果我尝试自己使用GetMappedFileNameA这样的函数,我将找不到更多信息。

解决方法

我的96 GB机器上有24 GB的映射文件。在我看来,这只是Windows文件缓存(如果您从DOS时代就知道,则为“ Smartdrv”)。

RAMMap

这与任务管理器中显示的“已缓存”量大致相同。该工具的提示为

包含缓存数据和未积极使用的代码的内存。

Task Manager

所以,这没什么好担心的。实际上,它很棒,因为Windows可以从内存而不是磁盘读取文件。这样可以使工作更快。