ProcessModule::ModuleMemorySize Property
.NET Framework (current version)
Gets the amount of memory that is required to load the module.
Assembly: System (in System.dll)
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
Available since 1.1
Show: