В каком реальном сценарии вы использовали сборщик мусора? - PullRequest
1 голос
/ 19 апреля 2011

Я знаю все теории:

Я знаю, что такое GC, когда вызывать распоряжаться, Финализировать, когда вызывается.

Я хотел бы знать, в вашем живом проекте ... в каком сценарии все это использовалось.

  • Я имею в виду, когда менеджер проекта / клиент настоял на том, чтобы вы очистили память?Когда вы обнаружите какие-либо ошибки в программах?Вид сообщений об ошибках или журналов ошибок?Когда ваша программа потерпела крах из-за нежелательной памяти?или любые другие сценарии?

Ответы [ 3 ]

5 голосов
/ 19 апреля 2011

Вам не важно, когда и как называется GC.Он достаточно умен, чтобы знать, когда запускать и какие объекты освобождать.

Вы также должны утилизировать, либо вручную, либо используя «используя» все объекты, которые реализуют IDisposable.Затем вы предотвратите много ошибок с неуправляемыми ресурсами, такими как файлы.

А если у вас заканчивается память, значит, что-то не так с вашим алгоритмом или самим кодом.Ручной вызов GC.Collect сильно обескуражен, особенно в производственном коде.

1 голос
/ 19 апреля 2011

Управление ресурсами - это то, что вы просто должны сделать.Это не «мой клиент настоял, чтобы я освободил свою память».Это просто хорошая практика.Не все приложения могут аварийно завершить работу, и пользователь просто перезапускает их - там есть одно или другое серверное приложение.

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

hth

Mario

1 голос
/ 19 апреля 2011

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

Подобный вопрос здесь

Утечки памяти вызывают сбой серверов. Причина и следствие.

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