防止內存全部耗完

        出現了好幾次服務器內存耗完導致進程宕機的問題,雖然主要問題是服務器管理不當,但是還是需要一個辦法,在內存耗完了的時候,能自動保存全部數據以後再退出,而不是直接宕機。

       解決辦法暫時這樣,在進程啓動的時候預先申請一小塊內存,當機器的內存耗光時,把這一小塊內存釋放出來,給進程保存數據,保存完畢後進程退出。

        具體如下:

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;

}



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