Size: a a a

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

2020 March 08

L

Lain-dono in RU Rust GameDev — русскоговорящее сообщество
источник

L

Lain-dono in RU Rust GameDev — русскоговорящее сообщество
Roman
Сложно использовать, поэтому примерно полтора проекта это делают
А главное - бездумное пользование такими штуками может не ускорить, а замедлить.
источник

R

Roman in RU Rust GameDev — русскоговорящее сообщество
Я это и имел ввиду под "Сложно"
источник

R

Roman in RU Rust GameDev — русскоговорящее сообщество
Да и локальность данных все равно важнее
источник

R

Roman in RU Rust GameDev — русскоговорящее сообщество
Хочешь, не хочешь, а данные в кэш суются не по одному байту
источник

A

Adevald in RU Rust GameDev — русскоговорящее сообщество
Roman
Хочешь, не хочешь, а данные в кэш суются не по одному байту
ну а как они вообще суются?
источник

A

Adevald in RU Rust GameDev — русскоговорящее сообщество
То есть мы если обращаемся любым образом к памяти
источник

A

Adevald in RU Rust GameDev — русскоговорящее сообщество
процессор сразу весь кусок под размер кэша отрывает?
источник

R

Roman in RU Rust GameDev — русскоговорящее сообщество
Идет lookup. Если в кэше L1 нет такого, то целая линия (512 байт на современных процах) тянется из L2
источник

R

Roman in RU Rust GameDev — русскоговорящее сообщество
Если в L2 нет, то из L3
источник

L

Lain-dono in RU Rust GameDev — русскоговорящее сообщество
Adevald
ну а как они вообще суются?
Если совсем вкратце:
Внутри проца сидит оракул, предсказывает будущее и на основе этих предсказаний оперирует всем этим.
источник

R

Roman in RU Rust GameDev — русскоговорящее сообщество
Если в L3 нет, то идет запрос на память
источник

R

Roman in RU Rust GameDev — русскоговорящее сообщество
Ну и да. Префетчер очень хитрожоп
источник

A

Adevald in RU Rust GameDev — русскоговорящее сообщество
Roman
Идет lookup. Если в кэше L1 нет такого, то целая линия (512 байт на современных процах) тянется из L2
А, то есть по сути в кэше и в оперативе хранятся одинаковые адреса да?
источник

R

Roman in RU Rust GameDev — русскоговорящее сообщество
Конечно
источник

o

operator in RU Rust GameDev — русскоговорящее сообщество
kvark: Интересно всё же было бы увидеть сравнение скорости ECS на реальных проектах. Вот Аметист, говоришь, переезжает - самое время делать такие замеры. Где они? А то синтетика - она такая.
источник

R

Roman in RU Rust GameDev — русскоговорящее сообщество
Каждая линия ассоциирована с каким-то виртуальным адресом
источник

A

Adevald in RU Rust GameDev — русскоговорящее сообщество
ну допустим обратились мы к нулевому элементу массива, умножили его на 10, потом попросили следующий элемент, процессор по этому адресу смотрит по кэшу 1, 2, 3 а потом уже и в память, так?
источник

R

Roman in RU Rust GameDev — русскоговорящее сообщество
Если б ты читал поочереди, то префетчер уже б догадался о твоих намерениях и данные были б в L1
источник

A

Adevald in RU Rust GameDev — русскоговорящее сообщество
То есть по сути надо для каждой системы группировать данные по тому как она их использует, то есть если у меня есть система управляющая передвижением, то в компоненте сразу есть и позиция и вектор движения
источник