Windows x64页面文件的灵活性

在开发用于x64的Windows应用程序时,Windows Vista和Windows 7 x64上的用户地址空间为8TB。

假设我有一个应用程序在正常工作集中消耗的可用物理内存(500MB-1GB)要less得多,另外,我还有更多的空间(比如3GB-4GB)剩余的内存大小 – 比方说100MB),这些都是专门加载的。 当然,在技术上,我可以很容易在地址空间中安装一个额外的4GB,实际情况是大部分内容都必须分页,除了那些内存为6-8GB的高端计算机。

问题是,我是否会通过耗费大量的单页应用程序的页面内存来耗尽页面文件来破坏计算机的性能? 或者,等价地,对于可以放入页面文件的内存量来说,什么是合适的最大值?

另外,这会不会在适当的时候手动从关联的文件中手动加载数据,这实际上是否会提高我在高端机器上的性能?

如果不同的块已经存储为文件,则将其视为内存映射文件 。 通过这样做,您的应用程序不必管理读取/写入数据。 此外(与您的问题密切相关),数据由磁盘上的文件支持,而不是系统的页面文件。

管理系统资源取决于操作系统。 当前页面文件通常只受可用磁盘空间的限制。 操作系统将通过平衡每个进程的物理分配来管理系统的性能。 物理内存分配而不是页面文件的使用更可能导致其他正在运行的应用程序的性能问题。

您可以考虑提供一个设置来切换应用程序将使用多少内存,以防止任何客户看到不利的性能影响。