虚拟内存更准确得叫法是交互区,就是swap。
windows没有像linux对swap提供很多用户管理参数只有一个粗放的设置大小,
更细致的用内存参数是winAPI来设计的,意味着只能由程序或系统负责swap
的使用,而如何使用swap对用户完全是黑盒。
所以并非“内存特别大时就不会使用虚拟内存”,而是降低使用的机率。系统会
通过LRU算法定期把冷数据交换到硬盘,来保持有大块的整块物理内存以供分配,
这就是有swap时的优点,但如何决策的具体机制?不详。linux上是可以决策何时
才用swap,这点比windows强。
当然你可以选择完全不设置虚拟内存,比如linux服务器就推荐不用swap,因为
已经快OOM,疯狂换页时一切错误皆有可能....别费劲,赶紧死吧!
但windows在内存完全不够时,系统会强制接管并分配一个大小的虚拟内存以
免挂掉,而大多数时候已经伴随用户程序(比如游戏)崩了,所以这时候要事前如
果已经有一个很大的swap,那么至少不会死得那么难看(给你个机会去存档...)
个人也不建议用系统管理的那个大小,因为整块分配效率高、能减少碎片文件。
所以留个物理内存一半大小(或者4、8G这种至少能用一阵子),并且固定大
小(初始值=最大值)效率高。
swap不是万能的,乖乖加内存才是王道,但没有swap对个人用户来说也是不行的。
理性设置、理性使用。