有没有办法在 Mac OS X 中针对特定应用程序禁用内存压缩?我阅读了如何禁用它在 Mac OS 10.9 Mavericks 中禁用压缩内存?但就我而言,它似乎只会对一个特定程序产生问题。
具体来说,当我处理的数据集足够大(在我的系统上大约 6 GB,8 GB RAM)以触发内存压缩服务时,Stata(Stata 13 MP)中的数据分析就会完全停止。
现在,我明白了压缩服务应该在系统内存不足时激活,并且从内存到硬盘(快速 SSD)的数据交换将比在内存中执行的操作慢 100 倍。但程序不仅变慢,而且完全停滞,以至于我需要强制退出它——即使需要进行的分析很简单(在稍小的数据集中仅使用几秒钟)。
问题发生时,活动监视器显示一个似乎是压缩服务的 kernel_task 开始使用 4 或 5 GB 内存和大量 CPU 时间。该进程本身似乎占用了太多内存,以至于其他应用程序的内存被挤爆了。在内存相同的 Windows 计算机上,同一文件的数据分析运行顺畅,即使该计算机在使用稍小的文件时速度明显变慢。
数据压缩的整个概念似乎不太适合应用于数据分析程序,因为用户在运行时选择将哪些数据加载到内存中。如果我选择将一个大数据集加载到内存中进行分析现在操作系统不应该试图通过在后台压缩它来智取我。有什么想法吗?我想知道以前没有人遇到过这个问题……
谢谢!一位 Stata 用户。