172 похожих чатов

Это с хабра про Redox 0.6 я не сцелью потролить,

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

32 ответов

5 просмотров

Во-первых, Redox, разумеется, написан на unsafe rust. Во-вторых, даже если бы в нём не было unsafe-кода, утечки памяти — безопасны.

Oleh-Nerzh Автор вопроса
Emmanuel Goldstein
Во-первых, Redox, разумеется, написан на unsafe ru...

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

std::mem::forget, бокс лики, ссылки это всё сейф же. там ведь это уже вроде объясняли в комментах ниже

Oleh Nerzh
утечки памяти — безопасны отэто прям немного аж за...

Нет ничего принципиально небезопасного в утечках памяти. Они не вызывают UB, просто твоя программа использует больше памяти, чем могла бы.

Oleh Nerzh
утечки памяти — безопасны отэто прям немного аж за...

А какой язык, Вы думаете, гарантирует обязательную рекламацию всей недоступной памяти? 😊

Oleh-Nerzh Автор вопроса
Loo Maclin
std::mem::forget, бокс лики, ссылки это всё сейф ж...

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

Oleh-Nerzh Автор вопроса
Alexander Chichigin
А какой язык, Вы думаете, гарантирует обязательную...

я вообще не про какие гарантии не спрашивал, но и "утечки" кажется другое позразумевают

Oleh Nerzh
утечки памяти — безопасны отэто прям немного аж за...

Если вы будете выделять под свой массив объектов по 2 мб, а реально ваших объектов там на 1,1мб, и так каждый раз, считается ли это утечкой памяти? по сути - да)) Безопасно ли то, что под ваши объекты выделяется доп память и не очищается? Ну как бы да, программа же не ломается, просто чуть больше памяти заняла под себя 😉

Oleh-Nerzh Автор вопроса
Adv0cat
Если вы будете выделять под свой массив объектов п...

"не очищается" пока массив нужен или вообще ? )

Wsevolod
mark&sweep gc после какой-то там итерации

Да? После какой же? А если он не запускался вообще? 😉

Oleh Nerzh
я вообще не про какие гарантии не спрашивал, но и ...

Да то же самое: память недоступна ни приложению (нет указателей на неё), ни ОС. 🤷‍♀️

Oleh Nerzh
"не очищается" пока массив нужен или вообще ? )

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

Oleh-Nerzh Автор вопроса
Adv0cat
Ну да, вам каждый раз нужно создать массив и им по...

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

Oleh Nerzh
ну не сломает и ладно, тогда зачем ото все владени...

Так разве ж утечки это единственная проблема?)))) Их же этих проблем из-за которых возникают поломки программ куча))

Adv0cat
Если вы будете выделять под свой массив объектов п...

Вообще-то сломается, когда её прибьёт OOM-killer.

Gleb
Вообще-то сломается, когда её прибьёт OOM-killer.

Можно запретить OOM-киллеру трогать нашу программу

Gleb
Вообще-то сломается, когда её прибьёт OOM-killer.

это несущественная деталь, потому что OOMKiller придет когда хочет.

Mikail Bagishov
это несущественная деталь, потому что OOMKiller пр...

Гм. Если для кого-то несущественно, что его программа инициировала запуск OOM-killer-а, потому что запрограммирована жрать память, то, как говорится, хозяин-барин, добавить тут нечего.

Gleb
Гм. Если для кого-то несущественно, что его програ...

для стандарта языка это действительно несущественно

Gleb
Гм. Если для кого-то несущественно, что его програ...

А если бы я задействовал все 100% аллоцированной памяти, то OOM killer бы не убил мою программу при нехватке памяти?

Emmanuel Goldstein
Нет ничего принципиально небезопасного в утечках п...

а разве утечка памяти не может привести к DOS уязвимости?

K K
а разве утечка памяти не может привести к DOS уязв...

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

Adv0cat
смотря как он настроен)

Ну, тут уж моя программа ничего поделать не может)

Mikail Bagishov
для стандарта языка это действительно несущественн...

Да, знакомая позиция: OOM и переполнения стека не считаются UB. Звучит парадоксально, но дизайнерам ЯП так проще творить, наверное.

Gleb
Да, знакомая позиция: OOM и переполнения стека не ...

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

Похожие вопросы

Обсуждают сегодня

кому не сложно распишите пожалуйста для какой цели тут вот эти скобки и в них пихается указатель?
Михаил Helper
15
Комрады, посоветуйте, куда копать? Стал прикручивать кастомизацию тем. В OnShow главной главной формы пытаюсь загрузить из файла настроек и применить тему (на скрине, как долж...
Ed Doc
13
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Такс, блин, таки кто-то знает, каким образом работают макросы stdin/stdout/stderr? Я влез в stdio.h, там определения нет, отладил через асмокод - вызывается функция со странны...
The Bird of Hermes
18
OnShow один раз вызывается? или возможен Hide?
Iluha Companets
14
Гайз, кто-нибудь пробовал запустить probe-rs под камень, которого нет в probe-rs? Мб есть какой-нибудь пример у кого... Через target-gen попробовал сгенерировать chip-descript...
Максим Смирнов
2
А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
Если у меня есть такой класс: Object = {} function Object:new(a_name, a_transform, a_color, a_mesh, a_material, a_shader, a_textures) local private = {} private.n...
Cuarno Vile
4
Всем привет, на линуксе лучше на fasm или nasm учиться писать для начала ?
meszjol
14
@MrMiscipitlick А можешь макрос написать, который будет вычислять смещение относительно переданных меток? Просто .label1-.label2, и вернуть значение.
КТ315
35
Карта сайта