글 작성자: 써니루루

 

윈도우 폼을 만들어 실행할 때 현재 프로그램이 메모리를 얼마나 사용하는지,

어떤 동작에 메모리 변화가 어떤지 실시간으로 확인하고 싶은 경우가 많이 있죠.

   

그래서 다음과 같은 코드가 필요할 수 있습니다.

   

먼저 디자이너 코드에는 다음과 같이 Timer Class가 있어야 합니다.

   

private System.Windows.Forms.Timer timer1;

private void InitializeComponent()

{

this.timer1 = new System.Windows.Forms.Timer(this.components);

//

// timer1

//

this.timer1.Enabled = true;

this.timer1.Interval = 3000; // 3초마다 메모리 값을 읽어옵니다.

this.timer1.Tick += new System.EventHandler(this.timer1_Tick);

}

   

위 만들어진 timer1을 이용해 아래와 같이 메모리 양을 구해오는 코드를 Form Text 속성에 할당해 주면 되는 것이죠.

   

#region 현재 쓰래드의 메모리 사용량

private readonly string titleStr = "기본적으로 설정할 타이틀 명칭을 기입합니다";

   

private void timer1_Tick(object sender, EventArgs e)

{

long size = System.Diagnostics.Process.GetCurrentProcess().WorkingSet64;

string sizeStr = GetMemorySize(size);

this.Text = string.Format("{0} - {1}", titleStr, sizeStr);

}

   

enum MemorySizeType

{

Byte, KByte, MByte, GByte, TByte

}

   

private string GetMemorySize(Int64 usageMemory)

{

String retStr = String.Empty;

System.Text.StringBuilder sb = new System.Text.StringBuilder();

   

int i = 0;

   

while (usageMemory > 1024L)

{

usageMemory = (Int64)(usageMemory / 1024L);

i++;

}

   

MemorySizeType sizeType = (MemorySizeType)i;

   

sb.AppendFormat("{0}{1}", usageMemory, sizeType.ToString());

retStr = sb.ToString();

   

return retStr;

}

#endregion

   

벌써 끝이네요…

   

참~ 쉽죠잉~?