У меня есть несколько вопросов, как работает сборщик мусора в приложениях C #
Приложение выполняет тяжелые операции ввода-вывода и базы данных в течение 10 дней.
Я читаю в тех местах, где некоторые эксперты советуют не использовать GC, поскольку это является обязанностью Framework, и пусть он выполняет свою работу или, если вы ее форсируете, производительность приложения будет снижаться.
Мне как-то нужно использовать 32-битные API-интерфейсы, где память ограничена 2 ГБ, и оставляя другие ресурсы, наше приложение в этом обсуждении может выйти из строя, если оно начнет отображаться с объемом 1,5 ГБ.
Для управляемых ресурсов я могу легко вернуть память, которая используется после каждой итерации в цикле. Но когда дело доходит до компонентов COM, которые я использую для геообработки, очень непоследовательно, как освобождается память. Я забочусь о том, чтобы выпустить все виды COM-объектов после использования их в заданной итерации, и все же я получаю ошибку, такую как «недостаточно памяти». Поэтому после примерно 300-400 итераций [каждая итерация занимает некоторое время, близкое к нескольким минутам), мне нужно только закрыть и открыть снова, чтобы освободить все ресурсы.
Я предоставлю больше информации, если кто-то захочет больше слушать.
Основная проблема, которую я хочу решить, состоит в том, как последовательно возвращать всю свою память после каждой итерации, скажем, в цикле for, очистив все, особенно с COM-объектами.
С наилучшими пожеланиями