RattenKong 🦧🐀🦍️
это placement new. Он использует твой buffer как область для размещения нового объекта
это да. Вопрос про то, что аллокация всегда успешна или в случае ошибки только ексепшн?
Vsevolod
как может быть ошибка при placement alloc?
🦥Alex Fails
/cppref noexcept
FailsBot
Search results for "noexcept" 1. noexcept operator 2. noexcept specifier 3. std::move_if_noexcept
Vitaliy ◀️TriΔng3l▶️
как может быть ошибка при placement alloc?
может быть хоть bad_alloc, в каком-нибудь векторе в новом объекте)
RattenKong 🦧🐀🦍️
как может быть ошибка при placement alloc?
тоже себя перед написанием спросил) если размер объекта больше буфера?
Vsevolod
ну, будет тебе сегфолт, если повезет
Alexander "SonnySlave"
если размер обьекта больше буфера, то там просто ногу должно оторвать и всё
Vsevolod
если не повезет, то насрешь в чью-то память и будешь потом это говно год искать
Vitaliy ◀️TriΔng3l▶️
nothrow только на одно выделение распространяется же, которое до конструктора?
Vitaliy ◀️TriΔng3l▶️
Или с noexcept у него есть какая-то связь?
Vsevolod
ну блин
Vsevolod
If the allocation function return a null pointer, which is possible if the non-throwing overload was selected, e.g. with new(std::nothrow) T;, then the new-expression returns immediately, it does not attempt to initialize an object or to call a deallocation function.
Vsevolod
нет памяти, нет коньструктора
🦥Alex Fails
nothrow только на одно выделение распространяется же, которое до конструктора?
nothrow просто эмулирует поведение маллока. Получилось выделить - на тебе указатель; не получилось - нуллптр
Vsevolod
(которое является огромной ошибкой)
Vsevolod
хотя в досовые времена было норм, да
Igor
и тут до людей доходит понятие "виртуальная память"... 😊
Мы уже готовы волком выть от этой виртуальной памяти и как ее правильно померить =/
Vsevolod
а зачем ее мерять?
Alexander "SonnySlave"
а зачем ее мерять?
присоединяюсь к этому вопросу
Vitaliy ◀️TriΔng3l▶️
не память видяхи же, которая в игре практически с эксклюзивным доступом :O
Vitaliy ◀️TriΔng3l▶️
или какое-то серверное приложение, которое почему-то должно работать одно?
Vsevolod
вон, тот же asan не стесняется: аллоцирует себе 16 терабайт памяти, и про вашу "оперативку" и не вспоминает
Igor
а зачем ее мерять?
ARM с 512мб памяти, из них X уходит на запуск системы со squashfs, Y нужно вырезать под нужды железячного декомпрессора, и понять какое минимальное Й нужно для нормальной работоспособности 15летнего ПО, изначально пишимого под вин, и вдобавок текущего как рваное корыто
Igor
а почему виртуальную, а не физическую?
Потому что я гладиолус и не в теме На какие показатели нужно смотреть, чтобы не получать явный бред "в системе доступно 380 мб, ваша программа занимает 160 из них, свободно 40мб, извольте умереть от oom killer"? Три человека этим занятые уже неделю ходят по кругу, если со стороны послушать
Vsevolod
uff
Vsevolod
oom_score_adj же
Alexander "SonnySlave"
ну конечно от настроек ОС зависит
Igor
Небольшой опрос - есть ли здесь любители все типы функций записывать в trailing return type форме? Как вы поступаете с void функциями?
Vsevolod
trailing return type - это сраное говно, зачем так писать?
Vsevolod
это же не раст
Igor
Пользователи приходят и просят, основные аргументы - так все в одном стиле и имена функций выровнены.
Alexander "SonnySlave"
хм, кстати, в cppcoreguidelines нет пункта по этому поводу?
Igor
uff
Who?
Vsevolod
https://techtalk.intersec.com/2013/07/memory-part-2-understanding-process-memory/ - на удивление хорошая статья про память и вообще
Igor
Спасибо, посмотрю
Igor
Насколько хороша/плоха идея измерять VmRSS всего запущенного и делать какието выводы из полученного?
Vsevolod
идея несостоятельна
Igor
//просьба не выгонять в про.линух, в последний раз когда я там был, там царил срач, двач, и никакой дружбомагии
Vsevolod
ну ты почитай статью, что я кинул, она короткая
Matwey
OMM киллер бессмысленный и беспощадный
Igor
Доеду домой прочту, это просто быстровопрос был
Matwey
Где вы нашли ARM с 512 метрами в 2018? BeagleBone Black что-ли?
Matwey
А система почему со squashfs? Она по сети приезжает что-ли?
Evgenii
бгг, тогда уж лучше сразу хаскиль или идрис
имхо ФП обязательно в универе давать надо
Igor
А система почему со squashfs? Она по сети приезжает что-ли?
Здесь мог наврать Система лежит в пожатом виде в 32 метрах флэшпамяти вместе с нашим ПО, возможно там не сквош Сквош точно использцется при дебаге
Matwey
Странно пытаться ужаться в 32 метра, когда можно себе позволить гигабайты
Matwey
Ну да ладно, это я так
Vsevolod
ФП в универе давать хорошо
Vsevolod
SICP тот же, который на лиспе, а не на PETOOHe
Matwey
А
Matwey
по теме могу сказать
Matwey
процессы в Linux можно упаковать в так называемые cgoups, которым назначить предел потребления памяти
Vsevolod
хотя он не о функциональном программировании per se
Matwey
это в теории даст более контролируемое поведение ООМ
Matwey
SICP тот же, который на лиспе, а не на PETOOHe
этот курсе же закрыли в прошлом году, он теперь на Python
Vsevolod
я и говорю, который не на PETOOHe
Matwey
Так другого нет теперь
Vsevolod
книжка же есть старая, не?
Vsevolod
https://mitpress.mit.edu/sicp/full-text/book/book.html
Vsevolod
все там
Matwey
книжка есть, а курса для студентов уже нет
Vsevolod
ну, я в mit не учился
Evgenii
этот курсе же закрыли в прошлом году, он теперь на Python
ну и правильно, первый язык должен быть практичным
Vsevolod
для студентов первый язык должен быть карательным
Vsevolod
можно с q/kdb начинать
Vsevolod
чтобы долбоебов сразу с первого курса в молочный техникум переводить