응용 프로그램에서 사용 가능한 RAM 또는 메모리를 어떻게 얻을 수 있습니까?
답변
당신이 사용할 수있는:
Process proc = Process.GetCurrentProcess();
현재 프로세스를 가져 와서 사용하려면 :
proc.PrivateMemorySize64;
개인 메모리 사용을 얻으려면. 자세한 내용은 이 링크 를 참조하십시오 .
답변
답변
System.Environment 에는 프로세스 컨텍스트에 매핑 된 실제 메모리의 바이트 수를 포함하는 64 비트 부호있는 정수인 WorkingSet이 있습니다.
많은 세부 정보를 원하면 System.Diagnostics.PerformanceCounter 가 있지만 설정하는 데 약간의 노력이 필요합니다.
답변
봐 여기에 자세한 내용은.
private PerformanceCounter cpuCounter;
private PerformanceCounter ramCounter;
public Form1()
{
InitializeComponent();
InitialiseCPUCounter();
InitializeRAMCounter();
updateTimer.Start();
}
private void updateTimer_Tick(object sender, EventArgs e)
{
this.textBox1.Text = "CPU Usage: " +
Convert.ToInt32(cpuCounter.NextValue()).ToString() +
"%";
this.textBox2.Text = Convert.ToInt32(ramCounter.NextValue()).ToString()+"Mb";
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void InitialiseCPUCounter()
{
cpuCounter = new PerformanceCounter(
"Processor",
"% Processor Time",
"_Total",
true
);
}
private void InitializeRAMCounter()
{
ramCounter = new PerformanceCounter("Memory", "Available MBytes", true);
}
값이 0이면 NextValue()
두 번 호출해야합니다 . 그런 다음 실제 CPU 사용량 값을 제공합니다. 자세한 내용은 여기를 참조 하십시오 .
답변
뿐만 아니라 @JesperFyhrKnudsen 의 대답과 @MathiasLykkegaardLorenzen 의 코멘트, 당신은 더 나은 것 dispose
(가) 반환 Process
사용 후.
따라서을 삭제하기 위해 스코프를 Process
감싸 using
거나 Dispose
반환 된 프로세스 ( proc
변수)를 호출 할 수 있습니다.
-
using
범위:var memory = 0.0; using (Process proc = Process.GetCurrentProcess()) { // The proc.PrivateMemorySize64 will returns the private memory usage in byte. // Would like to Convert it to Megabyte? divide it by 2^20 memory = proc.PrivateMemorySize64 / (1024*1024); }
-
또는
Dispose
방법 :var memory = 0.0; Process proc = Process.GetCurrentProcess(); memory = Math.Round(proc.PrivateMemorySize64 / (1024*1024), 2); proc.Dispose();
이제 memory
메가 바이트로 변환 된 변수를 사용할 수 있습니다 .
답변
완전한 시스템을 위해 Microsoft.VisualBasic Framework를 참조로 추가 할 수 있습니다.
Console.WriteLine("You have {0} bytes of RAM",
new Microsoft.VisualBasic.Devices.ComputerInfo().TotalPhysicalMemory);
Console.ReadLine();