Сообщение Почему фреймы стека не выделяют в куче? от 29.11.2021 22:10
Изменено 29.11.2021 22:36 Эйнсток Файр
Почему фреймы стека не выделяют в куче?
Аппаратный стек тогда бы содержал только один указатель на фрейм и адрес возврата.
Либо даже адрес возврата был бы тоже во фрейме, например первым.
Да, это дополнительная косвенность, но кого это вообще волнует в наши времена быстрых процессоров?
https://stackoverflow.com/questions/26741925/is-frame-in-jvm-heap-allocated-or-stack-allocated
Зато все значения переменных хранились бы в памяти, и к ним можно было бы осуществлять одинаковый доступ (например при сборке мусора).
Либо даже адрес возврата был бы тоже во фрейме, например первым.
Да, это дополнительная косвенность, но кого это вообще волнует в наши времена быстрых процессоров?
https://stackoverflow.com/questions/26741925/is-frame-in-jvm-heap-allocated-or-stack-allocated
Зато все значения переменных хранились бы в памяти, и к ним можно было бы осуществлять одинаковый доступ (например при сборке мусора).
The benefit of this approach is to have a single memory management for everything including thread stacks.
Почему фреймы стека не выделяют в куче?
Аппаратный стек тогда бы содержал только один указатель на фрейм и адрес возврата.
Либо даже адрес возврата был бы тоже во фрейме, например первым.
Да, это дополнительная косвенность, но кого это вообще волнует в наши времена быстрых процессоров?
https://stackoverflow.com/questions/26741925/is-frame-in-jvm-heap-allocated-or-stack-allocated
Зато все значения переменных хранились бы в памяти, и к ним можно было бы осуществлять одинаковый доступ (например при сборке мусора).
А раньше, говорят, выделяли:
https://softwareengineering.stackexchange.com/questions/113019/why-does-garbage-collection-only-sweep-the-heap
Либо даже адрес возврата был бы тоже во фрейме, например первым.
Да, это дополнительная косвенность, но кого это вообще волнует в наши времена быстрых процессоров?
https://stackoverflow.com/questions/26741925/is-frame-in-jvm-heap-allocated-or-stack-allocated
Зато все значения переменных хранились бы в памяти, и к ним можно было бы осуществлять одинаковый доступ (например при сборке мусора).
The benefit of this approach is to have a single memory management for everything including thread stacks.
А раньше, говорят, выделяли:
https://softwareengineering.stackexchange.com/questions/113019/why-does-garbage-collection-only-sweep-the-heap
that's not the popular approach these days. Java's JVM and Microsoft's CLR use the hardware stack and contiguous memory.