Size: a a a

2021 March 26

OB

Oleg B in dlang.ru
если беспокоит быстродействие, то ручным высвобождением ты его не увеличишь
источник

AB

Andrey Bukhanovsky in dlang.ru
меня в основном волнуют классы, в которых надо делать деструктор, чтобы освободить ресурсы. я, наверное, неправильно понимаю, но ведь GC деструкторы как попало вызывает? и что-нибуь да не удалится из какого-нибудь массива ресурсного? либо не в деструкторе это все надо делать? (вопрос нубячий, заранее извиняюсь)
источник

DH

Dark Hole in dlang.ru
Andrey Bukhanovsky
меня в основном волнуют классы, в которых надо делать деструктор, чтобы освободить ресурсы. я, наверное, неправильно понимаю, но ведь GC деструкторы как попало вызывает? и что-нибуь да не удалится из какого-нибудь массива ресурсного? либо не в деструкторе это все надо делать? (вопрос нубячий, заранее извиняюсь)
GC освобождает ресурсы
источник

DH

Dark Hole in dlang.ru
И вызывает для них деструктор
источник

DH

Dark Hole in dlang.ru
Деструктор ничего не делает сам
источник

AB

Andrey Bukhanovsky in dlang.ru
ok, спасибо!
источник

OB

Oleg B in dlang.ru
Andrey Bukhanovsky
меня в основном волнуют классы, в которых надо делать деструктор, чтобы освободить ресурсы. я, наверное, неправильно понимаю, но ведь GC деструкторы как попало вызывает? и что-нибуь да не удалится из какого-нибудь массива ресурсного? либо не в деструкторе это все надо делать? (вопрос нубячий, заранее извиняюсь)
вот тут как раз нужно немного пересмотреть философию, если тебе нужно высвобождать ресурсы, выделенные в классах (например закрыть дескриптор), то нужно делать отдельный метод close
источник

OB

Oleg B in dlang.ru
на деструктор возлагать ответственность за такие ресурсы не нужно
источник

DH

Dark Hole in dlang.ru
Oleg B
на деструктор возлагать ответственность за такие ресурсы не нужно
А зачем тогда деструктор нужен?)
источник

OB

Oleg B in dlang.ru
Dark Hole
А зачем тогда деструктор нужен?)
а по итогу они и не нужны)))
источник

OB

Oleg B in dlang.ru
для классов так точно
источник

DH

Dark Hole in dlang.ru
Oleg B
а по итогу они и не нужны)))
Ну впрочем как обычно в D
источник

DH

Dark Hole in dlang.ru
Фишка есть но она нинужна
источник

OB

Oleg B in dlang.ru
если структуры использовать, то можно raii делать, но тож аккуратно
источник

DH

Dark Hole in dlang.ru
Всего хорошего вам досвидания
источник

OB

Oleg B in dlang.ru
Dark Hole
Фишка есть но она нинужна
да чё опять то?
источник

OB

Oleg B in dlang.ru
хочешь сделать raii на классах — ты можешь, но это не стандартный подход и требует более глубокого понимания и языка и GC
источник

DH

Dark Hole in dlang.ru
Oleg B
да чё опять то?
Ну я не понял смысла делать отдельный метод close
источник

DH

Dark Hole in dlang.ru
Если есть raii, да
источник

OB

Oleg B in dlang.ru
Dark Hole
Ну я не понял смысла делать отдельный метод close
есть lifetime объекта, он вот такой, как ты распорядишься возможностями — твоё дело
источник