Mac 虚拟内存 – 它是什么、交换位置以及如何在 Mac OS X 中禁用交换

mac 虚拟内存

Mac OS X Swap 又名虚拟内存

您可能还记得,在旧版本的 Mac OS(OS 8 和 9)中,您可以通过调整控制面板中的设置来手动禁用交换,然后称为虚拟内存。 Mac OS X 有点不同,因为它建立在 unix 核心之上,而 unix 核心在很大程度上依赖于交换文件和分页来进行一般内存和缓存管理。因此,与以前的 Mac OS 版本相比,现在交换实际上更为重要。

基本上,当您的 Mac 需要内存时,它会将当前未使用的内容推送到交换文件中以进行临时存储。当它需要再次访问时,它会从交换文件中读取数据并放回内存中。从某种意义上说,这可以创建无限内存,但速度要慢得多,因为它受到硬盘速度的限制,而不是从 RAM 读取数据的近乎即时性。

如果你很好奇,你可以检查 Mac OS X 的虚拟内存使用情况 使用“vm_stat”命令,或使用活动监视器(通常被错误地称为 Mac 任务管理器 Windows 转换)。

Mac OS X 交换文件位置

如果您想知道交换文件在 Mac 上的存储位置,它们位于:

/private/var/vm/

这还直接包含您的 sleepimage 文件,这实际上是您的 Mac 在系统休眠之前存储在内存中的内容。当您唤醒 Mac 以返回到之前的状态时,会再次读取此文件。无论如何,回到同一目录中的交换文件:它们依次命名为 swapfile0、swapfile1、swapfile2、swapfile3、swapfile4、swapfile5。您可以使用以下命令亲自查看它们:

ls -lh /private/var/vm/swapfile*

交换文件的大小一般是交错的,从 64MB 到 512MB 不等。

禁用 Mac OS X 分页/交换

警告:我强烈建议不要修改 Mac OS X 处理内存管理和交换文件的方式。除非您确切地知道自己在做什么以及为什么这样做,否则这不是推荐的调整。同样,如果您不知道自己在做什么,请不要乱用 Mac OS X 的交换文件或分页功能!

在终端中,输入以下命令。这将从 Mac OS X 内核卸载动态寻呼机:

sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist

再次强调,这完全禁用了 Mac OS X 的分页功能,不要为了好玩而乱搞。

您的下一步是删除当前存储的交换文件,它们通常非常大(毕竟是您的虚拟内存)并且占用相当多的磁盘空间。

sudo rm /private/var/vm/swapfile*

这就是它的全部。