Можно ли остановить сборку мусора .NET? - PullRequest
9 голосов
/ 19 июня 2010

Возможно ли программисту программно запускать / останавливать сборку мусора на языке программирования C #?Например, для оптимизации производительности и т. Д.

Ответы [ 4 ]

7 голосов
/ 20 января 2016

Пока что возможно, в классе GC есть методы :

GC.TryStartNoGCRegion(...) и GC.EndNoGCRegion().

7 голосов
/ 19 июня 2010

Не совсем. Вы можете дать подсказки GC с помощью таких методов, как GC.AddMemoryPressure или GC.RemoveMemoryPressure, но не остановите их сразу.

Кроме того, сборка мусора не является настолько интенсивным процессом. Программисты очень редко об этом беспокоятся.

6 голосов
/ 19 июня 2010

В общем, нет.И большинство людей сочли бы преждевременной оптимизацию беспокоиться о сборке мусора, если вы не выполните какое-либо профилирование и не обнаружите, что это действительно является причиной низкой производительности вашего приложения. MSDN имеет довольно приличное описание способов сделать это.

GC для повышения производительности (или, более вероятно, для настройки вашего приложения с целью повышения его производительности по сравнению с GC).
4 голосов
/ 19 июня 2010

Нет, нет.В лучшем случае вы можете запустить сборку мусора самостоятельно, хотя это считается очень плохой вещью, поскольку она может мешать встроенным алгоритмам планирования, используемым GC.

...