为特定软件禁用 win7 硬盘内存

为特定软件禁用 win7 硬盘内存

有时当您要求 matlab 创建一个非常大的数组时,它会超出实际 RAM 并尝试进入硬盘,这会大大降低计算机的速度,以至于无法关闭 matlab,唯一的选择是使用电源按钮。

我只想禁用 matlab 对硬盘 RAM 的访问。

有两个相关问题,但没有什么真正有用的:

https://www.mathworks.com/matlabcentral/answers/34923-limiting-matlab-memory-usage

https://www.mathworks.com/matlabcentral/answers/231870-quitting-matlab-unresponsive-due-to-memory-maybe

答案1

有时当你要求 matlab 创建一个非常大的数组时,它会超出实际的 RAM 并尝试进入硬盘,这会降低计算机的速度

呃,有点不对。实际上,Windows 不会分配 RAM。它分配的是虚拟地址空间(如您在提交代码中看到的那样)。

当需要使用这个分配的空间时,它会尝试使用空闲的 RAM。
如果没有空闲的 RAM,它会尝试释放一些。例如,通过将一些信息从内存写入页面文件。

这不是每个应用程序的情况,而是系统上所有内存使用的情况。

以至于无法关闭 matlab,唯一的选择是使用电源按钮。

这里最有可能的问题是,你有一个应用程序触发了大量磁盘 IO。该磁盘由其他应用程序和操作系统共享。这意味着操作系统也会变慢。

解决方案:

  • 以某种方式限制 matlab 的内存上限。作业对象可能会有效果,尽管我从来没有用过它。
  • 或者获得更快的 IO。(减轻 IO 减速)。
  • 或者在虚拟机中运行 matlab(您可以限制虚拟机内存)。

答案2

这将有助于解决 IO 争用。

  1. 获取具有 5 倍或更多 IO 的 SSD。
  2. 添加第二个硬盘并将交换文件移动到其中(操作系统和交换文件永远不会以这种方式共享 IO)
  3. 1 和 2

碎片整理会有些许帮助,但不会产生任何奇迹。

关闭或者限制windows交换文件会导致windows变得缓慢而且难看。

相关内容