ProcessModule.ModuleMemorySize Property


The .NET API Reference documentation has a new home. Visit the .NET API Browser on to see the new experience.

Gets the amount of memory that is required to load the module.

Namespace:   System.Diagnostics
Assembly:  System (in System.dll)

public int ModuleMemorySize { get; }

Property Value

Type: System.Int32

The size, in bytes, of the memory that the module occupies.

ModuleMemorySize does not include any additional memory allocations that the module makes once it is running; it includes only the size of the static code and data in the module file.

The following code example creates a new process for the Notepad.exe application. The code iterates through the ProcessModuleCollection class to obtain a ProcessModule object for each module in the collection. The ModuleName and ModuleMemorySize properties are used to display the module name and the amount of memory needed for each module.

Process myProcess = new Process();
// Get the process start information of notepad.
ProcessStartInfo  myProcessStartInfo = new ProcessStartInfo("notepad.exe");
// Assign 'StartInfo' of notepad to 'StartInfo' of 'myProcess' object.
myProcess.StartInfo = myProcessStartInfo;
// Create a notepad.
ProcessModule myProcessModule;
// Get all the modules associated with 'myProcess'.
ProcessModuleCollection myProcessModuleCollection = myProcess.Modules;
Console.WriteLine("Module memory sizes of the modules associated "
   +"with 'notepad' are:");
// Display the 'ModuleMemorySize' of each of the modules.
for( int i=0;i<myProcessModuleCollection.Count;i++)
   myProcessModule = myProcessModuleCollection[i];
   Console.WriteLine(myProcessModule.ModuleName+" : "
// Get the main module associated with 'myProcess'.
myProcessModule = myProcess.MainModule;   
// Display the 'ModuleMemorySize' of the main module.
Console.WriteLine("The process's main module's ModuleMemorySize is: "

.NET Framework
Available since 1.1
Return to top