Запускать gc в зависимости от потребленной памяти процесса?
От: Sharov Россия  
Дата: 19.09.23 16:11
Оценка: 76 (1)
Здравствуйте.

Читаю тут про всяческие настройки GC -- https://learn.microsoft.com/en-us/dotnet/core/runtime-config/garbage-collector
Но вот вопрос -- а можно как-то запускать GC в зависимости от потребленной памяти всего процесса, т.е. unmanaged+managed?
Просто я нарвался на такой случай, что у меня некоторые управляемые объекты выделяют много неуправляемой памяти, а gc
работает крайне редко, соотв. у процесса может отожраться, скажем, 5Гб, а после сборки он соберет эти объекты, и все вернется к 300Мб. Можно
как-то на уровне конфигурации сказать gc, чтобы он отрабатывал при достижении какого-то порога потребленной памяти процессом?

https://learn.microsoft.com/en-us/dotnet/core/runtime-config/garbage-collector#high-memory-percent -- вроде то, но как указать, что
я хочу сборку, когда процесс отожрет 500Мб физ. памяти (ну или сколько-то там виртуальной)?

Заранее благодарю.
Кодом людям нужно помогать!
Re: Запускать gc в зависимости от потребленной памяти процесса?
От: Mumitroller Беларусь  
Дата: 19.09.23 16:36
Оценка: 86 (2) +1
Здравствуйте, Sharov, Вы писали:

S>Можно как-то на уровне конфигурации сказать gc, чтобы он отрабатывал при достижении какого-то порога потребленной памяти процессом?


Возможно, вам сможет помочь вот это: https://learn.microsoft.com/en-us/dotnet/api/system.gc.addmemorypressure?view=net-7.0

Mumitroller
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.