centOS で実行されるプログラムを作成しました。私の ram +swap メモリは 16 GB です。
#include <iostream>
#include <list>
#include<cstdlib>
#include<new>
#include <exception>
using namespace std;
int main ()
{
std::list<double> mylist;
double i;
try{
for (double i=1; i<=250000000; ++i) mylist.push_back(i);
}
catch (std::bad_exception& ba) {
cout << "Allocation failure: " << ba.what() << endl;
mylist.clear();
exit(1);
}
mylist.clear();
// std::cout << "mylist contains:";
// for (it=mylist.begin(); it!=mylist.end(); ++it)
// std::cout << ' ' << *it;
// std::cout << '\n';
return 0;
}
私の問題は、プログラムが実行されてRAM領域のメモリ割り当てを超えたときに、メモリ割り当てがスワップメモリで行われることです。スワップ メモリがいっぱいになると、OS はプログラムを強制終了します。プログラムが使用可能なメモリをいっぱいにするため、OSによって強制終了されないようにするために、どのタイプの実行処理を使用する必要がありますか。