У нас есть ситуация, когда мы рассматриваем принудительную сборку мусора на сервере с очень низким объемом оперативной памяти (в среднем 3,6 / 4 ГБ). Нет, к сожалению, это не вариант обновления этого сервера.
Один из наших сервисных процессов (написанных косвенно на C ++ (не спрашивайте ...)) работает с компонентами .NET и затем спит в течение 10 минут. Когда этот сервис находится в спящем режиме, он часто зависает на 600 МБ ОЗУ, которое может использоваться другими процессами. Похоже, это связано с тем, что трассировка WSE включена для отладки. Я могу наблюдать, как он просыпается, и GC на следующей итерации при первом вызове COM в .NET - однако тогда процесс выполняет некоторую работу, и к тому времени, когда он заходит в спящий режим, использование оперативной памяти возвращается к 600 МБ ... можно увидеть, куда это идет ...
Вопрос. Я подумываю добавить сборку мусора непосредственно перед тем, как процесс перейдет в спящий режим. В этом окне есть другие службы, которые выполняют задачи, связанные с .NET. Когда я вызываю сборку мусора в этом сервисном процессе, влияет ли этот GC на все другие процессы, связанные с .NET на коробке, или только на процесс, который запрашивает сборку? Я немного беспокоюсь о том, чтобы создать какую-то проблему с производительностью для процессов, не относящихся к тому, который мне нужен.