Size: a a a

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

2021 January 29

M

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

A

Anon in WebAssembly — русскоговорящее сообщество
MaxGraey
а с --noAssert флагом?
Ага, со всеми https://hatebin.com/rmsqalqeib
источник

A

Anon in WebAssembly — русскоговорящее сообщество
Короче примерно в 2 раза падение производительности по сравнению с minimal
источник

A

Anon in WebAssembly — русскоговорящее сообщество
Но там у меня цифры неадекватные, все связано исключительно с менеджментом памяти. И естественно minimal будет меньше жрать потому что я там GC collect дергаю не пол миллионо раз в секунду а всего 144
источник

A

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

A

Anon in WebAssembly — русскоговорящее сообщество
А не, надо сначала баг пофиксить в minimal рантайме, иначе тест будет не чистый. Я в дискорде отписал в канале development подробности.
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Anon
Ага, со всеми https://hatebin.com/rmsqalqeib
Если нужна производительность, то рекомендую
optimizeLevel: 3
shrinkLevel: 0
источник

A

Anon in WebAssembly — русскоговорящее сообщество
MaxGraey
Если нужна производительность, то рекомендую
optimizeLevel: 3
shrinkLevel: 0
Спс, пофикшу.
источник

N

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

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Anon
Короче примерно в 2 раза падение производительности по сравнению с minimal
Там проблема в том, что incrmental GC вынужден эмклировать shadow stack и хоть он это делает лишь для ссылок это все равно накладывает оверхед, который можно уменьшить только в middle IR, ну или дождать wasm GC. Я так смотрел v8 довольно неплохой прогресс уже имеют в этом плане
источник

N

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

A

Anon in WebAssembly — русскоговорящее сообщество
Nikolay
типа файтинга? или что-то сложней?
Стыдно говорить, но эта чудо технология будет юзаться для 2д стрелялки на фурри тематику :3
https://www.patreon.com/bananaparty
источник

N

Nikolay in WebAssembly — русскоговорящее сообщество
Anon
Стыдно говорить, но эта чудо технология будет юзаться для 2д стрелялки на фурри тематику :3
https://www.patreon.com/bananaparty
Да нормально, почему бы и нет
источник

N

Nikolay in WebAssembly — русскоговорящее сообщество
Anon
Стыдно говорить, но эта чудо технология будет юзаться для 2д стрелялки на фурри тематику :3
https://www.patreon.com/bananaparty
Какая команда у вас?
источник

A

Anon in WebAssembly — русскоговорящее сообщество
Nikolay
Какая команда у вас?
Артист/Spine-аниматор и я.
2 человека короче.
источник

N

Nikolay in WebAssembly — русскоговорящее сообщество
Я сейчас тоже на three проект делаю, правда не игровой
источник

ДЧ

Данил Черкашин... in WebAssembly — русскоговорящее сообщество
А если взять примерно одинаковый алгоритм на разных ЯП и скомпилировать из в wasm, какой из wasm модулей будет быстрее всего выполняться? (Абсолютно, а не относительно нативного языка)
источник

AT

Alexander Tchitchigi... in WebAssembly — русскоговорящее сообщество
Данил Черкашин
А если взять примерно одинаковый алгоритм на разных ЯП и скомпилировать из в wasm, какой из wasm модулей будет быстрее всего выполняться? (Абсолютно, а не относительно нативного языка)
Тот, который без GC, а лучше вообще память не освобождает. Так что C/C++/Rust.
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Alexander Tchitchigin
Тот, который без GC, а лучше вообще память не освобождает. Так что C/C++/Rust.
Я бы убрал Rust и C++. Только C только хардкор. Можно еще  Zig попробовать
источник

AT

Alexander Tchitchigi... in WebAssembly — русскоговорящее сообщество
MaxGraey
Я бы убрал Rust и C++. Только C только хардкор. Можно еще  Zig попробовать
А в чём проблема писать Box::leak? 😂
Смотря какой алгоритм, можно и руками на Wat закодить. 🤷‍♀😜
источник