LINUX.ORG.RU

Целенаправленные утечки памяти в некоторых специальных случаях.

 ,


1

2

Имеет ли смысл на онтопике и других юниксах не освобождать выделенную в куче неиспользуемую память вручную, если известно, что программа скоро будет завершена и вся память программы станет освободится автоматически?

Например, где-то там, в одной из функций инициализируется

static char** string_array; //глобальная переменная

Допустим, вместо того, чтобы освобождать эту память, я так и оставляю её «висеть», т.к. известно, что программа представляет собой консольную утилиту без интерактивного взаимодействия и за разумное время она всё равно завершит свою работу и память будет возвращена системе.

★★★★★
Ответ на: комментарий от anonymous

Если глючит хорг - это проблема хорга. Им и разбираться.

каким образом разрабы хорга узнают, КОГДА их xorg глючит? Багрепорта ведь нет, и например я его не могу составить, т.к. код гуглохрома закрыт.

emulek
()
Ответ на: комментарий от anonymous

Ну и все.

отличай написание C++ кода, и работу скомпилированного приложения. В приложении всё будет нормально, речь про C++ код. За такие вещи бьют по башке канделябрами.

emulek
()
Ответ на: комментарий от emulek

нет. Если вы в C++ сказали new, вы _обязаны_ сказать delete

но в общем случае, это даёт оверхед. и по памяти и по скорости. кстати, в отдельных случаях, по скорости, может и существенный, в случае вызова ненужных более толстых деструкторов.

всё-таки, у каждого подхода есть границы применения

Но Xorg это очень древний проект, и Ъ-решение в те далёкие годы не взлетело-бы

C++ старше

Систему тоже можно попросить выделить память в файле.

и?

next_time ★★★★★
() автор топика
Ответ на: комментарий от next_time

вы _обязаны_ сказать delete

но в общем случае, это даёт оверхед.

зачем вы используете компилятор 90хъ годов прошлого века? Свежий компилятор выкинет ваше delete, если оно ничего не делает.

Пруф нужен, или сами попробуете с вашим gcc?

И да, «преждевременная оптимизация == зло», сказано очень давно. Сегодня это стократ ЗЛО, т.к. компилятор сам делает тривиальные оптимизации, и можно подумать о том, как писать читаемый не говнокод. А не как извращаться оптимизируя такты.

Но Xorg это очень древний проект, и Ъ-решение в те далёкие годы не взлетело-бы

C++ старше

даже сегодня у вас не примут патч в ядро на C++. А в то время C++ был вообще НОВЫМ ЯП. Кто же в те годы знал, что C++ взлетит? Вот например я считал C++ тогда унылым и не нужным говном. А сейчас считаю, что для БОЛЬШИХ проектов C++ незаменим.

Систему тоже можно попросить выделить память в файле.

и?

система закроет временный файл, но НЕ удалит. Как раз наоборот — она его засунет на поверхность HDD из RAM. А у нас ТС хочет именно удаления.

emulek
()
Ответ на: комментарий от emulek

вы переоцениваете могущество компилятора

А у нас ТС хочет именно удаления.

вопрос в топике про динамическую память, про файлы — ни слова

next_time ★★★★★
() автор топика
Ответ на: комментарий от next_time

вы переоцениваете могущество компилятора

не, я проверял. Правда это как раз тот случай, когда деструктор НЕ должен быть виртуальным. Если сделать виртуальный деструктор, то gcc будет вынужден создать код delete, который ничего не делает (но деструктор может быть вызван из наследника, какой-то свой).

вопрос в топике про динамическую память

файлы это тоже память, и как знать, хватит-ли ТСу оперативной? Ну если у него узлов настолько МНОГО, что он считает такты от их удаления.

emulek
()
Ответ на: комментарий от emulek

каким образом разрабы хорга узнают, КОГДА их xorg глючит?

Именно для этого существуют бетатесты.

anonymous
()
Ответ на: комментарий от emulek

За такие вещи бьют по башке канделябрами.

Наоборот - канделябром в данном случае надо бить за освобождение памяти, т.к. это нарушает инварианты.

anonymous
()
Ответ на: комментарий от emulek

и можно подумать о том, как писать читаемый не говнокод.

Это ты правильно отметил. ак вот в данном случае писать delete - пример говнокода.

anonymous
()
Ответ на: комментарий от anonymous

каким образом разрабы хорга узнают, КОГДА их xorg глючит?

Именно для этого существуют бетатесты.

ЯННП.

emulek
()
Ответ на: комментарий от anonymous

За такие вещи бьют по башке канделябрами.

Наоборот - канделябром в данном случае надо бить за освобождение памяти, т.к. это нарушает инварианты.

ты там что куришь?

emulek
()

это как лечение пиявками.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.