动态内存管理

动态内存管理特性为虚拟硬盘提供了一个更高级的使用内存的方式。如果启用此特性,Primo Ramdisk 在创建虚拟硬盘时仅分配最小所需内存,而不是在初始时就分配全部所需内存。随后在运行过程中,如果现有分配的内存空间不足于容纳新的数据时,Primo Ramdisk 会再次请求从系统中分配内存,除非总分配的内存已经达到虚拟硬盘的容量大小。此外,Primo Ramdisk 和 VSuite Ramdisk 相比,还多了内存自动回收的特性。如果操作系统为 Windows 7 或更新,并且虚拟硬盘被格式化成 NTFS 文件系统,则当某个文件被永久删除后,这个文件占用的内存空间则会被 Primo Ramdisk 释放出来给系统,而不必长久无意义的占用内存空间。

这项特性在某些场合非常有用。比如用户创建了一个大容量的虚拟硬盘并作为网络下载的缓存盘,但是用户有时可能需要运行同样占用大量内存的大型3D游戏。如果不使用动态内存分配,则可能没有足够的内存资源来运行游戏。使用这项特性,用户则可以方便地在这两个应用之间切换。

以下例子详细说明了动态内存管理是如何工作的。

在创建虚拟硬盘前,首先我们通过 Windows 的任务管理器查看当前可用物理内存。在本例中,当前可用物理内存大约为 5GB。

为做对比,我们先创建一个 3000MB 大小的虚拟硬盘,没有启用动态内存管理。创建完后可以看到可用物理内存立即减少到大约 2GB,意味着大约 3GB 的内存已经从系统内存分配给虚拟硬盘。

接着我们删除这个虚拟硬盘,重新创建一个同样大小的虚拟硬盘,并启用动态内存管理。再次检查可用物理内存,发现仍然剩余大约 5GB!即基本没有从系统中分配内存。

然后我们复制一个大约 2GB 大小的文件到该虚拟硬盘。此时 Primo Ramdisk 会从系统请求内存分配以用来存放该文件数据。所以可以看到系统可用内存逐渐减少到 3 GB。

如果是 Windows 7、Windows Server 2008 R2 或更新的操作系统,并且虚拟硬盘被格式化成 NTFS 文件系统,Primo Ramdisk 能够在文件被删除后自动释放相应的内存,归还给系统。现在我们删除这个 2 GB 文件并等待大约 30 秒,可以看到系统可用内存又恢复到 5 GB。

紧凑模式

紧凑模式提供了更优化的内存分配算法。通过重新安排数据块在内存的分布,它保证只有在当前已分配内存块完全使用完之后才向系统请求分配下一个内存块。例如在 Windows Vista 或 Windows 7 下,如果没有使用紧凑模式,以下操作会触发虚拟硬盘从系统请求几乎全部硬盘大小的内存:在“我的电脑”中右击虚拟硬盘图标,然后在弹出的菜单中选择“属性”。但是在紧凑模式下,不会出现这个问题。

紧凑模式的缺点是略微影响数据访问性能。并且如果启用镜像文件的话,它仅支持紧凑镜像格式。

释放内存

如果开启了动态内存管理,您可以手动释放虚拟硬盘占用的全部内存,将它们归还给系统。点击命令工具条上的图标按钮 可重新初始化虚拟硬盘并释放占用的物理内存。

注:重新初始化操作会删除虚拟硬盘上的全部数据,并格式化虚拟硬盘,此操作也会影响虚拟硬盘关联的镜像文件。