Необходимо увеличить максимальный размер памяти программы до 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);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д