ProcessModule::ModuleMemorySize Property

 

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

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

public:
property int ModuleMemorySize {
	int 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 = gcnew Process;

// Get the process start information of notepad.
ProcessStartInfo^ myProcessStartInfo = gcnew ProcessStartInfo( "notepad.exe" );

// Assign 'StartInfo' of notepad to 'StartInfo' of 'myProcess' Object*.
myProcess->StartInfo = myProcessStartInfo;

// Create a notepad.
myProcess->Start();
System::Threading::Thread::Sleep( 1000 );
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( "{0} : {1}", myProcessModule->ModuleName, myProcessModule->ModuleMemorySize );
}
myProcessModule = myProcess->MainModule;

// Display the 'ModuleMemorySize' of the main module.
Console::WriteLine( "The process's main module's ModuleMemorySize is: {0}", myProcessModule->ModuleMemorySize );
myProcess->CloseMainWindow();

.NET Framework
Available since 1.1
Return to top
Show: