В большинстве случаев стоит убирать за собой по многим причинам, которые уже приведены: лучшая ремонтопригодность, лучшая утилита от проверки инструментов и т. Д.
Если есть другие функциональные причины для очистки, возможно, ваши данные сохранены в постоянном хранилище, тогда у вас нет выбора - вы должны очистить (хотя вы можете пересмотреть свой дизайн).
Однако в некоторых случаях может быть лучше просто выйти и «протечь».
В конце программы ваш процесс завершается. Когда это происходит, операционная система восстанавливает любую память, выделенную вашей программой, и в некоторых случаях она может сделать это намного быстрее.
Рассмотрим большой связанный список, где каждый узел распределяется динамически и несет существенную динамически распределяемую структуру. Чтобы очистить это, вы должны посетить каждый узел и освободить каждую полезную нагрузку (что, в свою очередь, может вызвать обход других сложных структур).
Вы можете выполнить миллионы операций с памятью, чтобы пройти через такую структуру.
Пользователь хочет выйти из вашей программы, и он сидит там в течение 10 секунд, ожидая кучу ненужной обработки. Они не могут быть заинтересованы в результате - они все-таки выходят из программы.
Если вы допустите эту «утечку», операционная система сможет восстановить весь блок памяти, выделенный вашему процессу, гораздо быстрее. Это не заботится о структурах и любой очистке объекта.
http://blogs.msdn.com/b/oldnewthing/archive/2012/01/05/10253268.aspx
В конечном итоге вы должны понимать, что ваши инструменты говорят вам, чтобы убедиться, что вы используете их правильно.