Size: a a a

Rust — русскоговорящее сообществo

2020 August 19

AV

Andrey Vlasov in Rust — русскоговорящее сообществo
Boris Vinogradov
не может у тебя быть одна и та же физическая память быть быстрей просто из-за того что ты внезапно обозвал её как-то по особенному
Так аллокация памяти по-другому происходит
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
Вообще я тут подумал
источник

AV

Andrey Vlasov in Rust — русскоговорящее сообществo
Andrey Vlasov
Так аллокация памяти по-другому происходит
По-разному*
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
Обращение к памяти на стеке это, в лучшем случае, один pop
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Mikail Bagishov
Ну по идее, куча может хуже влезать в кэш, потому что она фрагментируется сильнее.
Хотя для больших объектов разницы быть не должно
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
А вот для обращения к куче, нужно сначала достать указатель со стека без вариантов
источник

BV

Boris Vinogradov in Rust — русскоговорящее сообществo
Andrey Vlasov
Так аллокация памяти по-другому происходит
покуда ты не вылез за рамки базового стека да, потом почти похоже плюс тебя фризят
источник

T1

Tony 123 in Rust — русскоговорящее сообществo
Boris Vinogradov
не может у тебя быть одна и та же физическая память быть быстрей просто из-за того что ты внезапно обозвал её как-то по особенному
блин, тебе реально вот не стыдно даже сейчас?
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
А на вершину стека указатель всегда лежит в регистре
источник

BV

Boris Vinogradov in Rust — русскоговорящее сообществo
Emmanuel Goldstein
Обращение к памяти на стеке это, в лучшем случае, один pop
через pop ты будешь обращаться только тогда когда ты выполз из скоупа а в остальных будут те же индексы
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Emmanuel Goldstein
А на вершину стека указатель всегда лежит в регистре
А почему указатель на объект в куче не может лежать в регистре?
источник

T1

Tony 123 in Rust — русскоговорящее сообществo
дело не в физической памяти же далеко, у тебя наоборот при маленьких объектах можно оптимизировать выделение кучи, а при немного больших у тебя проход по чанкам и их разделение будет лол
источник

T1

Tony 123 in Rust — русскоговорящее сообществo
Mikail Bagishov
А почему указатель на объект в куче не может лежать в регистре?
и что что он будет лежать в регистре? быстрее аллокация станет?
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Tony 123
и что что он будет лежать в регистре? быстрее аллокация станет?
Аллокация нет, но использование - да.
источник

T1

Tony 123 in Rust — русскоговорящее сообществo
Mikail Bagishov
Аллокация нет, но использование - да.
ну это и дураку понятно, но к чему это?
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
Mikail Bagishov
А почему указатель на объект в куче не может лежать в регистре?
Может лежать, а может и не лежать
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
А на вершину стека точно лежит
И обращение к вершине стека одной инструкцией
источник

BV

Boris Vinogradov in Rust — русскоговорящее сообществo
Tony 123
дело не в физической памяти же далеко, у тебя наоборот при маленьких объектах можно оптимизировать выделение кучи, а при немного больших у тебя проход по чанкам и их разделение будет лол
при больших объектах у тебя будет уже не чанки а выделение регионов что может оказаться быстрее чем у стекового т.к. для стека ты не знаешь на сколько тебе надо страниц выделить памяти за раз
источник

BV

Boris Vinogradov in Rust — русскоговорящее сообществo
Emmanuel Goldstein
А на вершину стека точно лежит
И обращение к вершине стека одной инструкцией
как и к любой его части тоже за одну
источник

BV

Boris Vinogradov in Rust — русскоговорящее сообществo
и к окончанию фрейма тоже
источник