020-29133788
    资 讯
    您的位置:首页 >> 资 讯 >> 操作系统 >> 系统优化 >> 正文
    显示目前记忆体使用状态+释放记忆体空间范例

    点击:   发布日期:2013-05-26

    本文来自 www.020fix.com
    显示目前记忆体使用状态+释放记忆体空间范例
    显示目前记忆体使用状态

    拉三个 Label 元件随便放,再拉一个 Timer 元件,设定间隔一秒(1000)左右,事件内容如下:

        void __fastcall TForm1::Timer1Timer(TObject *Sender)
        {
        TMemoryStatus MemoryStatus;
        MemoryStatus.dwLength = sizeof(MemoryStatus);
        GlobalMemoryStatus(&MemoryStatus);
        Label1->Caption = "实体记忆体总量: "+IntToStr(MemoryStatus.dwTotalPhys/1024)+" KBytes";
        Label2->Caption = "剩馀可用的记忆体量: " +IntToStr(MemoryStatus.dwAvailPhys/1024)+" KBytes";
        Label3->Caption = "记忆体使用率: " +IntToStr(MemoryStatus.dwMemoryLoad)+" %";
        }

    /*
    MemoryStatus 结构如下,还想显示其它资讯的自己加:

    typedef struct _MEMORYSTATUS { // mst
      DWORD dwLength;     // sizeof(MEMORYSTATUS)
      DWORD dwMemoryLoad;   // percent of memory in use
      DWORD dwTotalPhys;   // bytes of physical memory
      DWORD dwAvailPhys;   // free physical memory bytes
      DWORD dwTotalPageFile; // bytes of paging file
      DWORD dwAvailPageFile; // free bytes of paging file
      DWORD dwTotalVirtual; // user bytes of address space
      DWORD dwAvailVirtual; // free user bytes
    } MEMORYSTATUS, *LPMEMORYSTATUS;
    */

    ****************************************************************
    释放记忆体空间

    原理很简单,例如我要释放出 100MB 的记忆体空间位置出来,就是先向作业系统直接要一块 100MB 的记忆体空间,
    作业系统就会开始清出 100MB 的记忆体出来要配置给您,而当您接收到作业系统配给您的 100MB 空间后,
    马上将它释放出来即可达到我们要的功能,程式码如下:

        int FreeSize=100;//假设要释放 100MB 的记忆体空间
        long iFreeSize=FreeSize*1024*1024; // 以 MB 为单位计算
        char *pBuffer=new char[iFreeSize]; // 配置(向作业系统要求)我们需要的记忆体空间大小
        for(long i=0;i<iFreeSize;i+=1024) // 以 K 为单位,加快存取时间
        {
          pBuffer[ i ]=0x0; // 配置记忆体一定要有存取动作才算数,直接存入 0 即可
          CGauge1->Progress=((i*10)/(iFreeSize/10));//这是进度条上的进度值运算,没用到请注解掉
          Application->ProcessMessages();//暂时释放 CPU 资源,避免造成系统无回应
        }
        delete [] pBuffer;//释放掉刚刚所请求的记忆体,即达成我们要的释放记忆体目的


    若是各位觉得不错,请不要吝啬送一朵花给我好吗


    上一篇:ASP资料库连结
    下一篇:扑克牌发排程式