MicroStation的内存管理问题


相比较之前版本的MicroStation(不管计算机的可用物理内存有多大,最多只能够使用2GB),MicroStation V8 XM Edition以及其之后的版本被设计为可以更有效地利用计算机的可用内存。这在处理大模型的时候会非常有帮助。

关于内存管理的内容其实是非常难以理解的,因为关系到像Windows这样的多任务操作系统的内存问题,以及虚拟内存等相关内容。接下来的内容会涉及到一些技术细节问题。但是对于大多数只是希望简单地听到怎样通过配置系统用以工作于大数据模型的建议的话,我们能给出的一些简单的解决办法就是比如,购买一台64位计算机,安装64位的操作系统(比如64位Windows7),并且购买安装更多的物理内存,或者使用我们64位版本的MicroStation CONNECT Editon。如果您不是特别在意计算机的技术细节问题。您可以直接忽略掉下面的内容,只看我们用粗体字标注的解决方案。

MicroStation CONNECT Editin之前版本的MicroStation都是32位的应用程序,因此理论上只能够识别4GB以内的内存。在Windows系统下运行的程序并不会直接访问物理内存。程序执行时被分配的其实是虚拟内存,换句话说,每个进程最大能够利用4GB的虚拟内存。而实际上,32位Windows的情况下,操作系统和应用程序会均分这些内存地址空间。因此,像MicroStation这样的应用程序实际上只能够使用2GB的内存地址空间。

64位Windows的情况下,操作系统并不会消耗32位程序的内存地址空间,这就是对于处理大模型的时候为什么64位操作系统比32位操作系统更可取的原因。

那么如果MicroStation被限制只能够使用2GB或者4GB的内存地址空间的话,怎样能够让它使用大于4GB的内存呢?答案就是MicroStation V8 XM以及其之后的版本能够在内部管理自己的虚拟地址空间。当MicroStation检测到内存不足的时候,它会把用于处理模型数据的内存交换到磁盘或者系统没有被使用的物理内存上。如果可行的话,这两种方式的任何一种都可能会被执行,当然很明显,如果交换到磁盘上,处理速度肯定要比交换到物理内存上慢很多。这也就是为什么在内存受限的时候安装更多的物理内存能够提高性能。这个技术同样适用于32位以及64位的windows操作系统。

然而,为了直接使用额外的系统物理内存。在windows下,需要赋予启动MicroStation的用户以一个特殊的权限。打开权限需要采用下面的方式。

 "Windows Control Panel > Administrative Tools > Local Security Policy > Local Policies > User Rights Assignment > Lock Pages In Memory" (在Windows7下 "Windows Control Panel > System and Security" 然后找到"Administrative Tools") 然后赋予使用MicroStation的用户予权限,并且请注意在启动MicroStation时,使用管理员权限启动。