Это очень хороший вопрос, и он также должен быть субъективным, потому что сама природа основы C # заключается в том, что все управление памятью выполняется средой выполнения, то есть сборщиком мусора. Сборщик мусора - это недетерминированный объект, который управляет и очищает память для восстановления, в зависимости от того, как часто память фрагментируется, сборщик мусора включается, следовательно, заранее знать, что это нелегко.
Правильное управление памятью звучит скучно, но для этого нужен здравый смысл, например, выражение using
, обеспечивающее удаление объекта. Вы можете добавить один обработчик для перехвата OutOfMemory Exception
, но это неудобный способ, поскольку, если программе не хватает памяти, программа просто захватывает и выполняет бомбардировку, или она должна терпеливо ждать, пока GC удар, снова определяя, что это сложно.
Нагрузка системы может отрицательно повлиять на работу ГХ, почти до точки отказа в обслуживании, когда все просто останавливается, опять же, начиная с технических характеристик машины или какова природа этой машины работа неизвестна, я не могу ответить на нее полностью, но я предполагаю, что у нее много оперативной памяти ..
В сущности, хотя это отличный вопрос, я думаю, вам не следует беспокоиться об этом и оставить .NET CLR для управления распределением / фрагментацией памяти, поскольку это, кажется, делает довольно хорошую работу.
Надеюсь, это поможет,
С наилучшими пожеланиями,
Том.