Mac 虚拟内存 – 它是什么
目录:
最近有人问我有关 Mac OS X 交换文件的问题,特别是如何完全禁用 Mac OS X 交换。我决定借此机会谈谈 Mac 虚拟内存(交换),它在 Mac 文件系统中的位置,并解释如何禁用它。
Mac OS X Swap aka Virtual Memory
您可能还记得,在旧版本的Mac OS(OS 8 和9)中,您可以通过调整控制面板中的设置来手动禁用交换,然后称为虚拟内存。Mac OS X 有点不同,因为它建立在 unix 核心之上,而 unix 核心在很大程度上依赖于交换文件和分页来进行一般内存和缓存管理。正因为如此,交换现在实际上比在以前的 Mac OS 版本中更重要。
基本上,当您的 Mac 需要内存时,它会将当前未使用的内容推送到交换文件中以进行临时存储。当它需要再次访问时,它会从交换文件中读取数据并放回内存中。从某种意义上说,这可以创建无限的内存,但由于它受硬盘速度的限制,与从 RAM 中读取数据的近乎即时性相比,速度要慢得多。
如果您好奇,可以使用“vm_stat”命令或使用活动监视器(通常被 Windows 转换者错误地称为 Mac 任务管理器)来检查 Mac OS X 的虚拟内存使用情况。
Mac OS X 交换文件位置
如果您想知道交换文件存储在 Mac 上的什么位置,它们位于:
/private/var/vm/
这还直接包含您的睡眠图像文件,这实际上是您的Mac 在系统睡眠之前一直存储在内存中的内容。当您唤醒 Mac 以返回到之前的状态时,会再次读取该文件。无论如何,回到同一目录中的交换文件:它们依次命名为 swapfile0、swapfile1、swapfile2、swapfile3、swapfile4、swapfile5。您可以使用以下命令亲自查看它们:
ls -lh /private/var/vm/swapfile
swap文件一般大小交错,从64MB到512MB不等。
禁用Mac OS X分页/交换
Caution: 我强烈建议不要修改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
这里的所有都是它的。