Необходимо увеличить максимальный размер памяти программы до 5 Гигов - C#
Формулировка задачи:
Необходимо увеличить максимальный размер памяти программы до 5 Гигов и как я понимаю, выполнить явный вызов деструкторов
Каждый элемент массива очень много весит. Где-то по 350 метров. Не совсем понятно, почему после того как написал Experiment[] ex = new Experiment[2]; в цикле, то не происходит очищениее памяти, ранее выделенной под массив. Хотя насколько я знаю, когда конструктор заново создает объект, память под старые объекты должна очищаться. Очищение происходит только здесь:
Когда в массиве 2 элемента,, тогда всё нормально работает, когда 4, то на 2 итерации внешнего цикла заканчивается память. ОЗУ 16 Гб
for (int i = 0; i < iExperimentsCount; i++)//50 экспериментов
{
Experiment[] ex = new Experiment[2];
for (int jj = 0; jj < 2; jj++)
{
Thread.BeginThreadAffinity();
foreach (ProcessThread pt in Process.GetCurrentProcess().Threads)
{
int utid = GetCurrentThreadId();
if (utid == pt.Id)
{
pt.ProcessorAffinity = (IntPtr)(jj + 1); // Set affinity for this
ex[jj] = new Experiment(checkBoxUniformExamples.Checked, checkBoxUseClasterisation.Checked, checkBoxUseStatisticsExperiments.Checked,
checkBoxSwarmOptimization.Checked, checkBoxImpulse.Checked, checkBoxUseCalculatedWeights.Checked,
checkBoxUseCallBack.Checked,
checkBoxUseKMeansPlusPlus.Checked);
ex[jj]._iClastersCount = _iClastersCount;
ex[jj].buttonCreateNeuralNetwork_Click();
foreach (NeuralNetwork n in ex[jj].networArray)
{
n.dFirstPercent = dPercent;
}
ex[jj].TeachNeuralNetwork();
ex[jj].buttonTest_Click();
}
}
Thread.EndThreadAffinity();
}
} ex[jj] = new Experiment(checkBoxUniformExamples.Checked, checkBoxUseClasterisation.Checked, checkBoxUseStatisticsExperiments.Checked,
checkBoxSwarmOptimization.Checked, checkBoxImpulse.Checked, checkBoxUseCalculatedWeights.Checked,
checkBoxUseCallBack.Checked,
checkBoxUseKMeansPlusPlus.Checked);
почему не происходит очищения и как мне увеличить максимальный размер памяти, выделяемой под программу. Win 64. VS 2012
Win 7 64 bit
при использовании массива из 4 элементов происходит нехватка памяти. 1300 метров ОЗУ занимает
Решение задачи: «Необходимо увеличить максимальный размер памяти программы до 5 Гигов»
textual
Листинг программы
//очистить
for (int jj = 0; jj < 2; jj++)
{
ex[jj].Dispose();
}
Array.Clear(ex,0,2);