MicroStation Memory Management

 Applies To 
 Version(s):V8i, V8
 Environment: Windows 7-10
 Area: N/A
 Subarea: N/A
 Original Author:Keith Bentley, Bentley Software Group

MicroStation V8 XM Edition and later is designed to use all of the available memory on your computer. This can be very helpful when working on large models, particularly compared to previous versions of MicroStation (which is limited to 2GB, regardless of how much memory is available).

The topic of memory management can be quite confusing, owing to the inherently complex memory issues of a multitasking operating system like Windows, and foreign concepts like "virtual memory". The rest of this article describes some details for the technically inclined. But for the vast majority of users who simply want advice on how to configure their system to work on very large data sets, the simple answer is: buy a 64-bit computer, install Windows x64 (preferably an x64 version of Windows 7 or later), and buy lots of memory. If you don't care to subject yourself to the technical details, you can simply take that advice and skip everything below other than the sentence in bold letters.

MicroStation V8/V8i is a 32-bit application, and is therefore limited to addressing "only" 4GB of memory. Programs running under Windows don't directly access the physical memory on your computer, so the 4GB value is referred to as "virtual memory". To complicate matters, under the 32-bit versions of Windows, the operating systems consumes 2GB of the 4GB of virtual address space. That means that under Windows32, applications like MicroStation really only have 2GB of virtual address space to use. Under Windows 64, the operating system does not consume any of an 32-bit program's address space, which is why Windows x64 is preferable to Windows32 for large models.

So if MicroStation is limited to either 2GB or 4GB of virtual address space, how does it use more than 4GB of physical memory? The answer is that MicroStation V8/V8i internally manages its virtual address space and "reuses" it when necessary. When MicroStation detects that it is running low on memory, it attempts to "swap" the memory used to hold model data either to disk or to unused physical memory on the system, if it is available. Either will work, but obviously swapping to disk is much slower than swapping to system memory. That is why installing more memory can almost always help improve performance in memory constrained cases. This technique works equally well on both Windows32 and Windows64, although obviously you need a 64-bit computer to install more than 4GB of physical memory.

However, to use the additional system memory directly, the user running MicroStation must be granted a "privilege" from Windows, since by default programs are not trusted to do this (don't worry, MicroStation knows what it's doing). This privilege can be enabled through "Windows Control Panel > Administrative Tools > Local Security Policy > Local Policies > User Rights Assignment > Lock Pages In Memory" (note that for Windows 7, you may need to go to "Windows Control Panel > System and Security" to get to "Administrative Tools"). Grant this permission to anyone who will use MicroStation on large models. See this special note for Enabling Lock Pages In Memory Under Windows 7 and Vista.

(Note: the quickest route to the Local Security Policy dialog is: Windows key + R to open the Run dialog > then enter SECPOL.MSC into the Run field.)

You can determine how much memory MicroStation is using to hold your models by looking at the Memory Details section under Help > About MicroStation. It will tell you how much memory is used by element data and whether or not you are swapping and if so, whether to disk, memory (referred to as "Paged"), or both.