Size: a a a

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

2021 January 28

MV

Mikhail Voronov in WebAssembly — русскоговорящее сообщество
MaxGraey
Да, я просто решил обобщить. Потому что часто имеют ввиду плюсы как самый первый пришедшый пример языка на ум
👍
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Mikhail Voronov
но, почти наверное, ситуация в сравнении с нативным не сильно поменялось
Ну я видел примеры, когда код был даже быстрее на wasmtime. Но это редкие случаи чувствительные к размеру кеша данных
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
проблема еще в том, что зачастую все подобные бенчмарки сильно синтетические и часто даже берут во вримание еще и I/O операции которые  естественно будут медленее в wasm
источник

SP

Sergey Platonov in WebAssembly — русскоговорящее сообщество
Mikhail Voronov
можно ориентироваться в среднем на просадку производительности в 1.3-2.5 раза
Это если брать рантайм с jit, интерпретатор вроде wasm3 даёт просадку на порядок.
источник
2021 January 29

A

Anon in WebAssembly — русскоговорящее сообщество
Посмотрел на утро свой код, посчитал количество утечек памяти в интеропе с JS.
источник

A

Anon in WebAssembly — русскоговорящее сообщество
источник

A

Anon in WebAssembly — русскоговорящее сообщество
Короче чувствую Loader в AS это порок. От него надо отучаться. Лучше общаться с wasm модулем через ArrayBuffer и старую добрую сериализацию.
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Anon
Короче чувствую Loader в AS это порок. От него надо отучаться. Лучше общаться с wasm модулем через ArrayBuffer и старую добрую сериализацию.
Надо просто сделать as-bindgen. Но все руки не доходят. Куча других более насущных задач
источник

A

Anon in WebAssembly — русскоговорящее сообщество
Хотя я тут глянул, с новым GC количество утечек которые я наделал сократится как минимум вдвое. И по идее Loader будет юзабелен именно таким образом, которым я изначально от него ожидал.
источник

A

Anon in WebAssembly — русскоговорящее сообщество
Короче да, теперь прямо в разы приятней работать.
источник

A

Anon in WebAssembly — русскоговорящее сообщество
Хоть и этот апдейт всё нахрен сломал, но всё чинится за 30 минут и в дальнейшем сильно упрощается
источник

A

Anon in WebAssembly — русскоговорящее сообщество
Оверхеду правда прибавилось, теперь 300к симуляций в секунду с натяжкой, раньше 500к легко было. Попробую minimal рантайм, может удастся вернуть былую мощь.
источник

ДЧ

Данил Черкашин... in WebAssembly — русскоговорящее сообщество
Anon
Оверхеду правда прибавилось, теперь 300к симуляций в секунду с натяжкой, раньше 500к легко было. Попробую minimal рантайм, может удастся вернуть былую мощь.
А что делаешь если не секрет?)
источник

A

Anon in WebAssembly — русскоговорящее сообщество
Данил Черкашин
А что делаешь если не секрет?)
2д игрушку с детермиинистической симуляцией. Для predict-rollback неткода.
источник

A

Anon in WebAssembly — русскоговорящее сообщество
Там симулировать надо на клиенте все происходящее гораздо больше чем при классической репликации стадий (примерно в 50-100 раз), поэтому на клиент это очень сильно давит и надо симуляцию делать быстрой.
источник

ДЧ

Данил Черкашин... in WebAssembly — русскоговорящее сообщество
Anon
2д игрушку с детермиинистической симуляцией. Для predict-rollback неткода.
Что такое детермиинистическая симуляция?
источник

ДЧ

Данил Черкашин... in WebAssembly — русскоговорящее сообщество
Типа можно узнать состояние системы в любой момент времени?
источник

A

Anon in WebAssembly — русскоговорящее сообщество
Данил Черкашин
Что такое детермиинистическая симуляция?
Вкратце: симуляция которая исполняется совершенно одинаковым образом на любой платформе (как правило не использует float и double вообще, т.к. спек IEEE-754 имеет разные настройки округления и математические либы написанные на них не детерминизированы по своему дизайну).
Почему это хорошо - потому что клиентам и серверам можно транслировать по сети только свой ввод, и полностью забить на репликацию стадий (только для начальной точки реплицируется стадия).
Как же это работает ? Клиент постоянно симулирует немного дальше в будущее, чтобы покрывать задержку сети. И когда клиент получает ввод, который он заранее не учел, он откатывает назад симуляцию, применяет новый ввод, и ресимулирует обратно в будущее.
источник

A

Anon in WebAssembly — русскоговорящее сообщество
Вктарце неполучилось, т.к. тема лютая, но вот TL;DR.
Есть видюшка https://youtu.be/0NLe4IpdS1w?t=194
источник

ДЧ

Данил Черкашин... in WebAssembly — русскоговорящее сообщество
Спасибо!
источник