ProcessModule.ModuleMemorySize Property

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

Supported in: 4.6, 4.5, 4, 3.5, 3.0, 2.0, 1.1

.NET Framework Client Profile

Supported in: 4, 3.5 SP1
Was this page helpful?
(1500 characters remaining)
Thank you for your feedback
© 2015 Microsoft