Теперь, когда ОЗУ обычно находится в гигабайтах на всех ПК, стоит ли мне уделять время поиску мелких (нерастущих) утечек памяти, которые могут быть в моей программе? Я говорю о тех дырах, которые могут быть меньше 64 байтов, или даже о группе, которая составляет всего 4 байта.
Некоторые из них очень трудно идентифицировать, потому что они не в моем собственном коде, но могут быть в стороннем коде или в коде инструмента разработки, и у меня может даже не быть прямого доступа к источнику. В этих случаях это потребовало бы длительного общения с поставщиками этих продуктов.
Я видел вопрос утечки памяти номер один здесь, на SO: утечки памяти когда-нибудь исправны? и ответ номер один на это, по состоянию на сейчас проголосовал 85 раз, это: Нет.
Но здесь я говорю о небольших утечках, которые могут потребовать чрезмерного количества отладки, исследований и связи, чтобы выследить.
И я говорю только о простом настольном приложении. Я понимаю, что приложения, работающие на серверах, должны быть максимально жесткими.
Итак, вопрос, который я действительно задаю: если я знаю, что у меня есть программа, которая дает утечку, скажем, 40 байт при каждом запуске, имеет ли это значение?
(источник: beholdgenealogy.com)
Также посмотрите мой следующий вопрос: Какие операционные системы освободят утечки памяти?
Постскриптум: Я только что купил EurekaLog для разработки моей программы.
Я нашел отличную статью Александра, автора EurekaLog (который должен знать об этом), о ловле утечек памяти. В этой статье Александр очень хорошо и кратко излагает ответ на мой вопрос:
Хотя любая ошибка в вашем приложении всегда плохая, существуют типы ошибок, которые могут не отображаться в определенных средах. Например, ошибки утечек памяти или ресурсов относительно безопасны на клиентских компьютерах и могут быть смертельно опасными на серверах.