Virtual Memory Optimization Feature
Document ID: CTX106023 / Created On: 25-Apr-2005 / Updated On: 14-
View products this document applies to
Virtual Memory Optimization is a feature in Presentation Server 4.0 and later. The
following questions and answers explain the benefits and inner workings of the
Q: What is Virtual Memory Optimization?
A: It is a feature designed to decrease Virtual Memory consumption of applications
and improve application initialization time.
Q: What Editions of Presentation Server support Virtual Memory
A: Presentation Server 4.0, 4.5, XenApp 5.0, and later, Platinum and Enterprise
Editions with Platinum or Enterprise Edition license files on the license server.
Q: Why is Virtual Memory Optimization necessary?
A: DLLs are designed to be shared by all applications, so that only one instance of a
DLL is needed in memory (RAM) regardless of how many applications are using that
DLL. When an application initializes and loads its DLL into its view of memory (the
virtual memory), there is a chance that the base memory address where it is
attempting to load that DLL may already be occupied by another DLL. This event of
attempting to load two DLLs at the same base memory address is called a collision.
When a collision occurs, the DLL has to be relocated to an available base memory
address. When this happens, the DLL can no longer be shared by other
applications, and hence this takes up more actual memory, which also increases the
amount of paging that the system must do and slows down overall performance.
The loader then has to update all the hard-coded pointers in the DLL to reflect the
new base address, which slows application load-time.
Q: What files and executables are used with Virtual Memory Optimization
and where are they located?
A: All files related to this feature are located in Program Files\Citrix\Server
Resource Management\Memory Optimization Management. Below is a description of