У меня проблемы с памятью в большой части программного обеспечения, над которым я работаю, я просматриваю методы, которые мы написали, где мы объявляем переменные в начале метода, но они не очищаются (аннулируется или удаляется) в конце метода.Очистка переменных в методах
public static bool CheckIsNumber(string x)
{
int y;
return(int.TryParse(x, out y));
}
как вы видите выше, y
никогда не устанавливается на нуль или утилизированы или что-нибудь подобное, я всегда думал, что это будет подобран GC, но после просмотра профайлер памяти, я не уверен, больше.
Это статический метод, который подразумевает (для меня), что он будет длиться всю жизнь приложения и не будет GC'd, как метод экземпляра или переменная. Хотя я мог бы быть waaaaaaaaayyyyyyyyyy. – Tim
Это локальная переменная, она выходит из области видимости при возврате метода. Это не проблема. –
Их подхватит сборщик мусора, но когда это произойдет, это не детерминировано. Несмотря на то, что метод является статическим, область действия 'y' является этим методом, и как только метод завершается, GC знает, что он может их поднять. –