程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 打印判斷內存使用改變

打印判斷內存使用改變

編輯:關於C語言

    這段代碼實現在類構造函數中獲取進程內存的使用,在析構時打印出進程內存使用的改變量。

class CAutoMem
{
public:
     CAutoMem(char* vInfo):strMem(vInfo){
          Init();
      }
     ~CAutoMem(){
           PrintMem();
      }
      void Init()
      {
            dwPrcID = GetCurrentProcess();
            PROCESS_MEMORY_COUNTERS pmc;
            GetProcessMemoryInfo((HANDLE)dwPrcID, &pmc, sizeof(pmc));
           dwMemSize = pmc.WorkingSetSize;

       }
       void PrintMem()
      {
             PROCESS_MEMORY_COUNTERS pmc;
             GetProcessMemoryInfo((HANDLE)dwPrcID, &pmc, sizeof(pmc));
             if(pmc.WorkingSetSize > dwMemSize)
             {
                    if(pmc.WorkingSetSize - dwMemSize > 1024)
                    {
                            printf("%s內存申請      %d\n\n", strMem.c_str(), (pmc.WorkingSetSize - dwMemSize)/1024);
                    }
              }
              else
             {
                    if(pmc.WorkingSetSize - dwMemSize > 1024)
                    {
                           printf("%s內存釋放      %d\n\n", strMem.c_str(), (dwMemSize - pmc.WorkingSetSize)/1024);
                    }
             } 
      }
public:
      string strMem;
      HANDLE dwPrcID;
      DWORD dwMemSize;
};

 

本文出自 “阿木雪” 博客,謝絕轉載!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved