Наличие деструкторов у объектов может негативно влиять на производительность программ при работе с памятью. 2
Это связано с тем, что такие объекты не удаляются первой же сборкой мусора. 2 У них больше шансов попасть во второе поколение и остаться в памяти навсегда, даже если они уже никому больше не нужны. 2
Кроме того, пустой деструктор (финализатор) приводит к ненужной потере производительности. 4 Это происходит из-за того, что при вызове финализатора вызывается сборщик мусора для обработки очереди, и пустой финализатор не нужен. 4
Однако деструкторы полезны для освобождения некоторых ресурсов, например файловых дескрипторов, соединений с БД и COM-объектов. 2 Важно чётко понимать, для чего используются деструкторы, и не добавлять их к классам «просто так, на всякий случай». 2