V4Fire / Client

V4Fire client core library
MIT License
22 stars 14 forks source link

Использовать битовые маски для дескрипторов свойств компонентов #1284

Open shining-mind opened 1 month ago

shining-mind commented 1 month ago

Контекст: https://github.com/V4Fire/Client/pull/1279#discussion_r1617057330

Есть гипотеза, что у нас создается множество дескрипторов для пропов, филдов и системных полей. Стоит провести ресерч даст ли профит замена булевых значений в дескрипторах на битовые маски.

Для упрощения работы с масками можно использовать фабрику битовых масок: https://github.com/shining-mind/cs-frontend/tree/master/src/coursework-01/bit-us#битовые-маски-bit-field

kobezzza commented 1 month ago

Можно пойти дальше и перейти на байтовые структуры на основе ArrayBuffer. А может стоит дождаться нативных структур в JS, которые вот-вот добавят в спеку.

shining-mind commented 1 month ago

Насчёт нативных структур - это всё равно нам не подойдет, т.к. поддержка будет плохая на девайсах. А вот ArrayBuffer можно рассмотреть.

shining-mind commented 1 month ago

Но ИМХО работать с числами и побитовым смещением будет дешевле, чем с ArrayBuffer

kobezzza commented 1 month ago

Ты видимо не понимаешь про что я)

shining-mind commented 1 month ago

Ты видимо не понимаешь про что я)

Если я правильно понял, ты предлагаешь создать дескриптор полностью на ArrayBuffer, я же предлагаю пока ограничиться переносом всех булевых полей в битовую маску.