Типичные операционные системы (включая Windows, Linux, Android и т. Д.) Очищают все ресурсы процесса, когда процесс уничтожается.Это включает в себя восстановление любой памяти, принадлежащей исключительно этому процессу, закрытие файлов и сетевых подключений, открытых процессом, уменьшение числа ссылок на общие ресурсы и т. Д. Это включает в себя уничтожение контекстов графического процессора и любой памяти или других ресурсов, связанных с ними.Поэтому нет, вы не будете пропускать системные ресурсы, если не очистите программу при сбое.
На самом деле, некоторые программы сознательно выбирают также не выполнять очистку при чистом / преднамеренном выходе, поскольку ОС часто работает быстрее.на этом, чем вызывая кучу кода завершения приложения.По определению вид, что код используется не часто, поэтому, возможно, никогда даже не был выгружен с диска, и он часто заканчивает тем, что выполнял больше работы, чем просто освобождение ресурсов уровня ОС, например, вызывая деструкторы для объектов, которые не владеютРесурсы на уровне операционной системы.
Основная причина изящной очистки при выходе (как чистой, так и аварийной) состоит в том, что инструменты обнаружения утечек могут помочь вам обнаружить утечки без прерывания.Если вы все пропускаете, отчеты о ресурсах, которые вы пропустили, до завершения - что может указывать на проблемные утечки, бесконечно растущие - как правило, теряются в шуме.