正如标题所述,我遇到了页面文件活动高的问题。
我正在开发一个处理大量图像的程序,它从硬盘驱动器加载。它从每张图像中生成一些数据,我将其保存在列表中。对于每 3600 张图像,我将列表保存到硬盘中,其大小约为 5 到 10 MB。它以尽可能快的速度运行,因此它最多使用一个 CPU 线程。
该程序工作,它生成它应该生成的数据,但是当我在 Visual Studio 中分析它时,我收到一条警告说:DA0014: Extremely high rates of paging active memory to disk。
根据任务管理器,该程序的内存消耗约为 50 MB,似乎很稳定。当我运行该程序时,我在 4 GB 中剩下大约 2 GB,所以我想我并没有用完 RAM。 http://i.stack.imgur.com/TDAB0.png
DA0014 规则描述说“例如,每秒输出的页数通常远大于每秒的页写入数。因为每秒输出的页数还包括系统文件缓存中更改的数据页。但是,它不是总是很容易确定哪个进程直接负责寻呼或为什么。”
这是否意味着我收到此警告仅仅是因为我从硬盘驱动器中读取了很多图像,还是其他原因?不太确定我在寻找什么样的错误。
编辑:链接到插入的图像。
EDIT1:图像大小约为 300 KB。在加载下一个之前,我会先处理每个。
更新:从实验看起来像分页来自只是加载大量文件。由于我不是 C# 或底层 GDI+ API 方面的专家,我不知道哪个答案最正确。我选择了 Andras Zoltans 的回答,因为它得到了很好的解释,而且他似乎做了很多工作来向像我这样的新人解释原因:)