LINUX.ORG.RU

Зачем вызывать delete если программа сама завершается?

 


0

3

Пример. Есть процесс. Он потребляет память но не освобождает. Когда память закончится он перезапускается и все начинается по новой. Время перезапуска 1 секунда, никто и не заметит.


А потом задаёшься вопросом «почему у меня устройство мощнее суперкомпьютеров, на которых к Луне летали, но всё тормозит». Или, ещё лучше, пользовательские данные потеряешь из-за того, что прога не успела их сохранить или же покорёжила, если её прибили во время сохранения. Ну и совершенно неоптимальная утилизация мощностей, с таким подходом тебе в Java-энтерпрайз, там любят на каждое приложение по выделенному серверу давать

XMs ★★★★★
()
Последнее исправление: XMs (всего исправлений: 2)

Время перезапуска 1 секунда, никто и не заметит.

на самом деле гнулинукс будет тормозить неограниченно долго, пока не прибьёт эту программу, и все всё заметят

Harald ★★★★★
()

и что такого делает программа, что ее можно перезапустить и никто не заметит? Если ее не запускать может тоже никто не заметит?

r0ck3r ★★★★★
()

Я конечно не настоящий сварщик, но ведь new/delete может работать через кастомный аллокатор, в т.ч. такой, где память не освобождается ОС при завершении процесса (какой-нибудь shmem например).

Когда память закончится он перезапускается и все начинается по новой

Ну и вообще, это какое-то адище.

no-such-file ★★★★★
()

Нужно соблюдать корпоративные ритуалы.

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

серверу СУБД, если он не игрушечный, критичен перезапуск. Как минимум, такому серверу нужен кэш в ОЗУ, для доступа к часто запрашиваемым данным. И я уже молчу о пользователях, потерявших соединение.

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

память не может утекать маленькими кусочками, если она всегда и везде очищается

r0ck3r ★★★★★
()

Когда память закончится

Приходит oom killer

anonymous
()

зачем закрывать программы если все равно перезагружаешь компьютер

Вообще очень толсто, но я верю что ты сможешь придумать что-нибудь поинтересней.

BOSS-NIGGER
()

Некоторые и не вызывают delete, вполне себе оптимизация…

В какой-то статье на хабре PVS-Studio рассказывали что они в своём анализаторе не вызывают delete и это сэкономило 0.1с для каждого файла проверяемого анализатором.

В gtk вроде есть какие-то объекты которые создаются на старте программы и никогда не удаляются, тоже вроде бы для скорости. В Valgrind специальные флаги добавляли именно для glib/gtk чтобы игнорировать эти объекты.

Но я бы лучше удалял, всегда приятно когда твоя программа не выдаёт ошибок под Valgrind, оптимизации не всегда нужны…

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

о пользователях, потерявших соединение

Да и фиг с ними, это часто случается. Транзакции свои откатят и все.

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

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

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

Тут более кардинальный случай.

Зачем рожать, если все равно умрет?

Зачем запускать программу, если все равно остановишь?

Естетсвенно, всё (функционально) чисто-стерильно и не осавляет после себя никаких следов (помёта).

anonymous
()

У меня вот firefox забирает много памяти и не отдает даже если закрывать вкладки. Помогает только перезапуск.

Liz812
() автор топика

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

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

шоб аборты не делать, здоровью не вредить

Чем роды отличаются от аборта?

Только вот не надо расказывать про «естественность». Щас почти никто не рожает «естественно».

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

писать авторам этих библиотек, чтобы исправили.

пользоваться другими библиотеками

или смириться с утечками и перезапускать программу время от времени по крону.

fsb4000 ★★★★★
()

Можно прикрутить к c++ garbage collector. Тогда будет не так стыдно.

KivApple ★★★★★
()
Ответ на: комментарий от no-such-file

new/delete может работать через кастомный аллокатор, в т.ч. такой, где память не освобождается ОС

С glibc все именно так и происходит

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

Для того и кормим. Аппетит у него(неё?) хороший, быстро вырастет.

anonymous
()

Интересно, чья реинкарнация топикстартер

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

я специально за тобой охочусь

Случайно.

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

Какое состояние у http протокола?

Какое состояние у веб-сервера отдающего в данный момент один и тот же файл нескольким сотням клиентов?

deep-purple ★★★★★
()
Ответ на: комментарий от Liz812

Если не секрет, как называется эта ваша СУБД? Чтобы знать, чем никогда в жизни не пользоваться. И, если можно, список компаний, которые почему-то это используют. По той же причине

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