переменные в C # - сбрасываются после выполнения функции? - PullRequest
1 голос
/ 19 июня 2011

хороший метод, я сбрасываю переменные после выполнения функции?

Ну, мне нужна лучшая производительность для моего приложения на C # Мне нужно меньше памяти оперативной памяти возможно

Ответы [ 5 ]

11 голосов
/ 19 июня 2011

хороший метод, я сбрасываю переменные после выполнения функции?

Нет, это пустая трата времени.Не оптимизируйте, пока не ЗНАЕТЕ, где медлительность.

8 голосов
/ 19 июня 2011

Переменные типов значений (большинство встроенных типов, таких как int, char, bool, а также структуры) обычно возвращают свою память сразу после возврата из функции, поскольку они размещаются «в стеке» (что означает, что ониявляются частью структуры данных, которая создается, когда функция начинает выполнение, и освобождается, когда функция возвращается).

Переменные ссылочных типов будут автоматически освобождены сборщиком мусора, когда они больше не нужны.

Память, которая не освобождается при возврате функций, вряд ли будет причиной проблем с вашей программой.

Как уже говорилось в другом ответе, не оптимизируйте, если у вас нет веских доказательств того, где находится проблема.

3 голосов
/ 19 июня 2011

В общем, единственное «управление», которым вы должны заниматься в C #, - это удаление объектов, классы которых реализуют IDisposable .Это обычно делается через с использованием блоков .

Время от времени вы должны помнить отписаться от события .

В противном случае, не делайтене беспокойтесь об этом (если вы не выделяете десятки тысяч объектов и не храните их в памяти).Доверьтесь сборщику мусора.

3 голосов
/ 19 июня 2011

Если вы ищете проблемы в вашем программном обеспечении, есть бесплатный профилировщик, XTE Profiler.Это позволит вам обнаружить любые утечки памяти или узкие места в вашем коде.Кроме того, прямо сейчас Telerik выпустила собственный профилировщик памяти, который в настоящее время доступен бесплатно, но находится в бета-версии.

1 голос
/ 19 июня 2011

Как отмечают другие, вы должны быть обеспокоены: 1. Вызов утилизировать IDisposable объекты. 2. Отписаться от обработчиков (если есть).

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...