这段代码实现在类构造函数中获取进程内存的使用,在析构时打印出进程内存使用的改变量。

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;
};