сделать чтото одно и как то лучше продумать копирование обьектов?
У нас и так одно — оперативная память
Так исторически сложилось.
Стек для данных статичной величины, куча для данных динамического размера.
а эти статические данные не размещают в кучу только потому, что стек работает быстрее?
Да Выделение места на стеке — это одна операция вычитания по сути Выделение памяти на куче — это более сложный процесс
Отчасти из-за этого. Отчасти из-за того, что нам необходимо привязывать данные к конкретному вызову функции, и сделать это без стека будет дороже.
Выделение памяти на куче в ГЦ это перемещение поинтера буквально.
GC сам по себе не бесплатный )
Значительно дешевле системного аллокатора.
Есть и другие аллокаторы
для GC да, но пока CLR передаст вам управление, пройдет еще некоторое время. там много кастов внутри самого CLR, проверки для различный гарантий и инициализация)
Все ещё дешевле вызова malloc
безусловно, но GC свое наверстает потом)
Обсуждают сегодня