动态内存分配

动态内存分配为虚拟硬盘提供了一个更高级的使用内存的方式。如果启用此特性,VSuite Ramdisk则在创建虚拟硬盘时仅仅分配最小所需内存,而不是在初始时就分配全部所需内存。当已分配的内存不足于容纳新的数据时,它会再次请求从系统中分配32MB大小的内存块,除非总分配的内存已经达到虚拟硬盘的容量大小。

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

以下是具体的示例。

在创建虚拟硬盘前,我们先通过Windows的任务管理器查看可用物理内存。如下图所示目前可用物理内存大约为3GB。

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

现在我们删除这个虚拟硬盘,重新创建一个同样大小的虚拟硬盘,并启用动态内存分配。再次检查可用物理内存,发现还剩余大约2.8GB!即只有大约200MB内存被分配给虚拟硬盘。(这里200MB内存主要用于初始化NTFS文件系统。)

继续这个实验,我们复制大约600MB的数据到这个虚拟硬盘(Z盘),可以看到现在的可用物理内存减少为大约2.2GB,即新分配了大约600MB内存给虚拟硬盘以容纳新增数据。

使用限制

1.动态内存分配不能自动释放内存,即使虚拟硬盘上的数据不再使用。例如虚拟硬盘上的某个大文件被删除后,原来存放这个文件的内存仍然被虚拟硬盘占用。但是用户可以通过“内容清除”操作,手动格式化虚拟硬盘并释放虚拟硬盘占用的内存(详细)。

2.这项特性仅适用于系统可识别内存,不适用于系统未识别内存。

3.如果启用了镜像文件功能,并且镜像文件格式是完全镜像(未启用快速加载模式)或压缩镜像,则这项特性不起作用。这是因为从镜像文件加载数据会触发内存分配。更多信息,参考如何使用镜像文件

紧凑模式 [v4.1 新增]

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

紧凑模式会稍微牺牲一点数据访问性能,并且如果启用镜像文件的话,它仅支持智能镜像格式。

释放内存 [v4.5 新增]

动态内存分配不能自动释放不再使用的内存,但是用户可以手动释放虚拟硬盘占用的全部内存。通过“清除内容”操作,用户可以重新初始化虚拟硬盘,并且在动态内存分配启用的情况下将释放虚拟硬盘占用的内存。

注:
1. 该操作会删除虚拟硬盘上的全部数据,并格式化虚拟硬盘,
2. 如果该虚拟硬盘启用了镜像文件功能,则该操作不会释放内存。