防止内存全部耗完

        出现了好几次服务器内存耗完导致进程宕机的问题,虽然主要问题是服务器管理不当,但是还是需要一个办法,在内存耗完了的时候,能自动保存全部数据以后再退出,而不是直接宕机。

       解决办法暂时这样,在进程启动的时候预先申请一小块内存,当机器的内存耗光时,把这一小块内存释放出来,给进程保存数据,保存完毕后进程退出。

        具体如下:

BYTE* reserveMem=NULL;

void noMemory()             //定义自己的new操作失败处理函数
{

    delete reserveMem;

    save();
    exit(1);
}

void save()

{

    //保存数据

}

int main()

{

    std::set_new_handler(noMemory);

    reserveMem = new BYTE[2*1024*1024];

    return 1;

}



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章