[Из песочницы] Реализация минимизации логических функций методом Квайна\Мак-Класки
Комментарии (2)
12 мая 2017 в 16:16
0↑
↓
Выяснилось, что с уборкой мусора время работы значительно меньше, чем без неё! Хотя, казалось бы, на работу сборщика мусора должно тратиться время, что должно было ухудшить результат.
Попробуйте пул объектов добавить.Я вижу кучу созданий
Dictionary
> SelectedTerms = new Dictionary >(); new HashSet (); new LinkedList ();
Попробуйте их переиспользовать. Ну и вообще попрофилируйте конструкторы.Плюс, не понял проблемы со ссылками на структуры. Ключевое слово ref как раз для ссылок на значимые типы используется.
12 мая 2017 в 18:21
0↑
↓
По поводу пула объектов не получится, т. к. нехватка памяти происходит в одном месте одной процедуры, где массово создаются объекты типа TreeNodeEnd. «Вылечить» я это пытался путём полной сборки мусора перед вызовом этой процедуры примерно так:… GC.Collect(); Skleivanie(…); … private void Skleivanie(…) { … foreach (…) { … new TreeNodeEnd(…); //Здесь происходит ошибка выделения памяти … } … }
Но при количестве входных переменных больше 15 происходит столько выделений TreeNodeEnd, что памяти не хватает.