Необходимо увеличить максимальный размер памяти программы до 5 Гигов - C#

Узнай цену своей работы

Формулировка задачи:

Необходимо увеличить максимальный размер памяти программы до 5 Гигов и как я понимаю, выполнить явный вызов деструкторов
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();
                        
                    }
}
Каждый элемент массива очень много весит. Где-то по 350 метров. Не совсем понятно, почему после того как написал Experiment[] ex = new Experiment[2]; в цикле, то не происходит очищениее памяти, ранее выделенной под массив. Хотя насколько я знаю, когда конструктор заново создает объект, память под старые объекты должна очищаться. Очищение происходит только здесь:
 ex[jj] = new Experiment(checkBoxUniformExamples.Checked, checkBoxUseClasterisation.Checked, checkBoxUseStatisticsExperiments.Checked,
                                 checkBoxSwarmOptimization.Checked, checkBoxImpulse.Checked, checkBoxUseCalculatedWeights.Checked,
                                checkBoxUseCallBack.Checked,
                                checkBoxUseKMeansPlusPlus.Checked);
Когда в массиве 2 элемента,, тогда всё нормально работает, когда 4, то на 2 итерации внешнего цикла заканчивается память. ОЗУ 16 Гб
почему не происходит очищения и как мне увеличить максимальный размер памяти, выделяемой под программу. 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);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.333 из 5
Похожие ответы