Сообщение Re: А почему бы не сделать стек еще умнее? от 13.11.2016 12:49
Изменено 13.11.2016 12:50 lpd
Здравствуйте, Kingofastellarwar, Вы писали:
K>фича для компилятора:
K>вот например передаем мы чтото или создаем локальную переменую, а почему бы если нет особых указаний, то все что будет динамически выделено этим и производными объектами не выделять тоже в стеке?
K>т.е. все операторы new вызванные в методах этого объекта, если нет особых указаний, будут аллокейтить в стеке
K>например при передаче строк, можно вообще тогда обойтись без обращения к куче
Чем тебе не нравятся обращения к куче? Стек последовательный и при выделениях и последующих освобождениях будет быстро фрагментироваться(быстрее, чем куча). Можно обойтись одной кучей без стека, используя какие-то другие структуры данных, — стек просто удобен для реализации вложенных вызовов процедур.
K>фича для компилятора:
K>вот например передаем мы чтото или создаем локальную переменую, а почему бы если нет особых указаний, то все что будет динамически выделено этим и производными объектами не выделять тоже в стеке?
K>т.е. все операторы new вызванные в методах этого объекта, если нет особых указаний, будут аллокейтить в стеке
K>например при передаче строк, можно вообще тогда обойтись без обращения к куче
Чем тебе не нравятся обращения к куче? Стек последовательный и при выделениях и последующих освобождениях будет быстро фрагментироваться(быстрее, чем куча). Можно обойтись одной кучей без стека, используя какие-то другие структуры данных, — стек просто удобен для реализации вложенных вызовов процедур.
Re: А почему бы не сделать стек еще умнее?
Здравствуйте, Kingofastellarwar, Вы писали:
K>фича для компилятора:
K>вот например передаем мы чтото или создаем локальную переменую, а почему бы если нет особых указаний, то все что будет динамически выделено этим и производными объектами не выделять тоже в стеке?
K>т.е. все операторы new вызванные в методах этого объекта, если нет особых указаний, будут аллокейтить в стеке
K>например при передаче строк, можно вообще тогда обойтись без обращения к куче
Чем тебе не нравятся обращения к куче? Стек последовательный и при выделениях и последующих освобождениях будет быстро фрагментироваться(быстрее, чем куча). Можно обойтись одной кучей без стека, используя какие-то другие структуры данных, — стек просто удобен для реализации вложенных вызовов процедур, и поддерживается процессором.
K>фича для компилятора:
K>вот например передаем мы чтото или создаем локальную переменую, а почему бы если нет особых указаний, то все что будет динамически выделено этим и производными объектами не выделять тоже в стеке?
K>т.е. все операторы new вызванные в методах этого объекта, если нет особых указаний, будут аллокейтить в стеке
K>например при передаче строк, можно вообще тогда обойтись без обращения к куче
Чем тебе не нравятся обращения к куче? Стек последовательный и при выделениях и последующих освобождениях будет быстро фрагментироваться(быстрее, чем куча). Можно обойтись одной кучей без стека, используя какие-то другие структуры данных, — стек просто удобен для реализации вложенных вызовов процедур, и поддерживается процессором.