требуют постоянной аллокации памяти. Но без gc это же может быть адски дорого?
я думал это gc дорогой 🌚
gc дорогой и одновременно нет. Конечно его наличие уже дорого. Но в ситуациях когда ты тупо используешь malloc, а не хитрожопые пулы, gc может быть быстрее.
на си есть await? Какой малок
ну обычный new в c++ это почти тот же маллок нет?
А какая разница, malloc это или нет?
и даже new такое себе, лучше использовать умные указатели, чтобы не надо было самому чистить память (и иногда отстреливать ноги)
вот в том то и дело умные указатели как раз могут быть медленнее GC, потому что тупо используют malloc. Вот и асинк авейты требуют этот самый малок постоянно, и мне это не нравится или я слишком переоцениваю прожорливость дефолтного маллока
ты предлагаешь сделать асинхронщину без выделения памяти? А потоки как ты запускаешь, в любом языке, даже с gc? У тебя там так же выделяется память и её потом скрипя и пердя gc убирает
GC это какой никакой готовый пул, который довольно эффективно как раз управляет памятью. И ручная память основанная на free malloc может быть медленнее если самому не написать какой-то пул с помощью них то есть свой GC.
Современный маллок давно всех переплюнул по хитрожопости пулов. Куда ни глянь - gemalloc, tcmalloc, mimalloc и т.п. юзают :)
замеры в студию, какой-то адский накид
если честно это мои предположения только и может быть вообще неправда Вот я и спрашиваю
Это вообще неправда.
Ну вообще другой тогда вопрос. Быстрее ли malloc и free чем garbage collector? В сценариях когда malloc используется также примитивно как new в java например без кеширования пулов и прочего говна?
Оберните код в теги: 3 символа ` до и после кода (в случае одиночной конструкции достаточно 1 ` с обеих сторон). Спасибо!
сначала, мы используем new и delete
Обсуждают сегодня