Process.PeakWorkingSet64 プロパティ
アセンブリ: System (system.dll 内)


例外の種類 | 条件 |
---|---|
PlatformNotSupportedException | プラットフォームが Windows 98 または Windows Millennium Edition (Windows Me) です。このプロパティはサポートされません。 |

このプロパティによって返された値は、プロセス開始以降、プロセスが使用するワーキング セット メモリの最大サイズを表します。プロセスのワーキング セットとは、物理 RAM メモリ内でプロセスが現在参照できるメモリ ページのセットのことです。これらのページは常駐であり、アプリケーションはページ フォルトを起こすことなくこれらを参照できます。
ワーキング セットには、共有データとプライベート データの両方が含まれます。共有データには、プロセス モジュールやシステム ライブラリからの命令など、プロセスが実行する命令をすべて格納するページが含まれています。
このプロパティは、32 ビット プロセッサまたは 64 ビット プロセッサを搭載したコンピュータで、メモリ使用量を監視する場合に使用できます。プロパティ値は、プロセスの [Working Set Peak] のパフォーマンス カウンタと等価です。
Windows 98, Windows Millennium Edition プラットフォームメモ : このプロパティは、Windows 98 または Windows Millennium Edition (Windows Me) ではサポートされていません。

メモ帳アプリケーションのインスタンスを起動するコード例を次に示します。この例では、インスタンスの起動後、関連付けられているプロセスのさまざまなプロパティが取得および表示されます。この例は、プロセスの終了を検知し、終了コードとピーク メモリ統計情報を表示します。
Imports System Imports System.Diagnostics Namespace ProcessSample Class ProcessMonitorSample Public Shared Sub Main() ' Define variables to track the peak ' memory usage of the process. Dim peakPagedMem As Long = 0 Dim peakWorkingSet As Long = 0 Dim peakVirtualMem As Long = 0 Dim myProcess As Process = Nothing Try ' Start the process. myProcess = Process.Start("NotePad.exe") ' Display process statistics until ' the user closes the program. Do If Not myProcess.HasExited Then ' Refresh the current process property values. myProcess.Refresh() Console.WriteLine() ' Display current process statistics. Console.WriteLine("{0} -", myProcess.ToString()) Console.WriteLine("-------------------------------------") Console.WriteLine(" physical memory usage: {0}", _ myProcess.WorkingSet64) Console.WriteLine(" base priority: {0}", _ myProcess.BasePriority) Console.WriteLine(" priority class: {0}", _ myProcess.PriorityClass) Console.WriteLine(" user processor time: {0}", _ myProcess.UserProcessorTime) Console.WriteLine(" privileged processor time: {0}", _ myProcess.PrivilegedProcessorTime) Console.WriteLine(" total processor time: {0}", _ myProcess.TotalProcessorTime) ' Update the values for the overall peak memory statistics. peakPagedMem = myProcess.PeakPagedMemorySize64 peakVirtualMem = myProcess.PeakVirtualMemorySize64 peakWorkingSet = myProcess.PeakWorkingSet64 If myProcess.Responding Then Console.WriteLine("Status = Running") Else Console.WriteLine("Status = Not Responding") End If End If Loop While Not myProcess.WaitForExit(1000) Console.WriteLine() Console.WriteLine("Process exit code: {0}", myProcess.ExitCode) ' Display peak memory statistics for the process. Console.WriteLine("Peak physical memory usage of the process: {0}", _ peakWorkingSet) Console.WriteLine("Peak paged memory usage of the process: {0}", _ peakPagedMem) Console.WriteLine("Peak virtual memory usage of the process: {0}", _ peakVirtualMem) Finally If Not myProcess Is Nothing Then myProcess.Close End If End Try End Sub 'Main End Class End Namespace
using System; using System.Diagnostics; namespace ProcessSample { class ProcessMonitorSample { public static void Main() { // Define variables to track the peak // memory usage of the process. long peakPagedMem = 0, peakWorkingSet = 0, peakVirtualMem = 0; Process myProcess = null; try { // Start the process. myProcess = Process.Start("NotePad.exe"); // Display the process statistics until // the user closes the program. do { if (!myProcess.HasExited) { // Refresh the current process property values. myProcess.Refresh(); Console.WriteLine(); // Display current process statistics. Console.WriteLine("{0} -", myProcess.ToString()); Console.WriteLine("-------------------------------------"); Console.WriteLine(" physical memory usage: {0}" , myProcess.WorkingSet64); Console.WriteLine(" base priority: {0}", myProcess.BasePriority); Console.WriteLine(" priority class: {0}", myProcess.PriorityClass); Console.WriteLine(" user processor time: {0}" , myProcess.UserProcessorTime); Console.WriteLine(" privileged processor time: {0}" , myProcess.PrivilegedProcessorTime); Console.WriteLine(" total processor time: {0}" , myProcess.TotalProcessorTime); // Update the values for the overall peak memory statistics. peakPagedMem = myProcess.PeakPagedMemorySize64; peakVirtualMem = myProcess.PeakVirtualMemorySize64; peakWorkingSet = myProcess.PeakWorkingSet64; if (myProcess.Responding) { Console.WriteLine("Status = Running"); } else { Console.WriteLine("Status = Not Responding"); } } } while (!myProcess.WaitForExit(1000)); Console.WriteLine(); Console.WriteLine("Process exit code: {0}", myProcess.ExitCode); // Display peak memory statistics for the process. Console.WriteLine("Peak physical memory usage of the process: {0}", peakWorkingSet); Console.WriteLine("Peak paged memory usage of the process: {0}" , peakPagedMem); Console.WriteLine("Peak virtual memory usage of the process: {0}", peakVirtualMem); } finally { if (myProcess != null) { myProcess.Close(); } } } } }
#using <system.dll> using namespace System; using namespace System::Diagnostics; int main() { // Define variables to track the peak // memory usage of the process. _int64 peakPagedMem = 0,peakWorkingSet = 0,peakVirtualMem = 0; Process^ myProcess = nullptr; try { // Start the process. myProcess = Process::Start( "NotePad.exe" ); // Display the process statistics until // the user closes the program. do { if ( !myProcess->HasExited ) { // Refresh the current process property values. myProcess->Refresh(); Console::WriteLine(); // Display current process statistics. Console::WriteLine( "{0} -", myProcess ); Console::WriteLine( "-------------------------------------" ); Console::WriteLine( " physical memory usage: {0}", myProcess->WorkingSet64 ); Console::WriteLine( " base priority: {0}", myProcess->BasePriority ); Console::WriteLine( " priority class: {0}", myProcess->PriorityClass ); Console::WriteLine( " user processor time: {0}", myProcess->UserProcessorTime ); Console::WriteLine( " privileged processor time: {0}", myProcess->PrivilegedProcessorTime ); Console::WriteLine( " total processor time: {0}", myProcess->TotalProcessorTime ); // Update the values for the overall peak memory statistics. peakPagedMem = myProcess->PeakPagedMemorySize64; peakVirtualMem = myProcess->PeakVirtualMemorySize64; peakWorkingSet = myProcess->PeakWorkingSet64; if ( myProcess->Responding ) { Console::WriteLine( "Status = Running" ); } else { Console::WriteLine( "Status = Not Responding" ); } } } while ( !myProcess->WaitForExit( 1000 ) ); Console::WriteLine(); Console::WriteLine( "Process exit code: {0}", myProcess->ExitCode ); // Display peak memory statistics for the process. Console::WriteLine( "Peak physical memory usage of the process: {0}", peakWorkingSet ); Console::WriteLine( "Peak paged memory usage of the process: {0}", peakPagedMem ); Console::WriteLine( "Peak virtual memory usage of the process: {0}", peakVirtualMem ); } finally { if ( myProcess != nullptr ) { myProcess->Close(); } } }


Windows 98, Windows 2000 SP4, Windows CE, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Weblioに収録されているすべての辞書からProcess.PeakWorkingSet64 プロパティを検索する場合は、下記のリンクをクリックしてください。

- Process.PeakWorkingSet64 プロパティのページへのリンク