慢速网页文件的增长可能会导致内存分配错误

适用于: Windows 10

症状


经常分配内存的应用程序可能会遇到随机的"内存不足"错误。此类错误可能会导致其他错误或受影响的应用程序中的意外的行为。

原因


内存分配失败可能会导致增长以满足系统中需要额外的内存换页文件的大小与相关联的延迟。这些故障可能的原因是当页面文件的大小配置为"自动"。自动分页文件大小开始用较小的页面文件,并根据需要自动增长。

IO 系统由多个组件,包括文件系统筛选器、 文件系统、 卷筛选器、 存储筛选器等组成。给定系统上的特定组件可能会导致页面文件的增长变化。

替代方法


要变通解决此问题,请手动配置页面文件的大小。若要执行此操作,请执行以下步骤:

  1. 按下 Windows 徽标键 () + 暂停/Break 键以打开系统属性
  2. 选择高级系统设置,然后在高级选项卡上的性能部分中选择的设置
  3. 选择高级选项卡,然后选择更改虚拟内存部分。
  4. 清除自动管理的所有驱动器页面文件大小复选框。
  5. 选择自定义大小,然后设置"初始大小"和"最大大小"值分页文件。我们建议在系统中将初始大小设置为内存量的 1.5 倍。
  6. 选择确定以应用这些设置,然后再重新启动系统。

如果您继续收到"内存不足"错误消息,则增加页面文件的"初始大小"。

状态


Microsoft 已确认这是在“适用范围”部分中列出的 Microsoft 产品存在的问题。

更多信息


如果您使用 Microsoft Visual C++ 编译器 (cl.exe) 时遇到此问题,您可能会看到类似于下面的间歇生成错误:

  • 错误 C1076: 编译器限制: 内部堆达到;使用 /Zm 指定更高的限制
  • C1083 错误: 无法打开类型文件:文件消息
  • 错误 C1090: PDB API 调用失败,错误代码的代码:消息
  • 编译器错误 C3859: 超过; PCH 的虚拟内存范围请重新编译使用的命令行选项-ZmXXX 或更高版本

有关 Visual C++ 编译器错误,以及如何解决它们的详细信息,请参阅以下 Visual C++ 团队博客文章:

预编译头 (PCH) 的问题和建议