Size: a a a

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

2019 December 23

AS

Aλexander Syrotenko in WebAssembly — русскоговорящее сообщество
MaxGraey
Сейчас GC научились делать так, что мир не останавливался на 200-800 миллисекунд, раньше это было проблемой которая особенно чувствоваласть в realtime приложениях таких как игры. Вротая проблема GC - футпринт по памяти, который как раз очень сильно начинает сказываться когда у тебя есть огромные долгоживущие объекты как в базах данных. Например в Go я встречал базы, у которых основное приимущество было в том, что они умели этот футпринт свести до минимума) Ну вообще как я понял в Go GC пока еще не слишком совершенен, но намного лучше чем у остальных
Go GC ничем особо не лучше других, нормальный такой себе concurrent mark & sweep с кучей ручек
источник

AT

Alexander Tchitchigin in WebAssembly — русскоговорящее сообщество
Богдан
Кстати народ, поправьте если ошибаюсь, но я так понимаю языки с gc подходят только для узкого круга задач, а вот для баз данных или разного рода кешей (или наверное всего что касается сервера и высоких нагрузок) языки с gc не подходят из-за принципа работы самого gc который собирает неиспользуюемые объекты путем сканирования всех занятых объектов от рут-сета. А для баз данных основная задача заключается в том что нужно бысто получить список связанных объектов (аля джойны и индексы) и самый быстрый способ их получить это хранить эти связанные объекты в памяти и связывать их по ссылке (константный переход по адресу без каких-либо деревьев или хешей). Ну а теперь представим себе такую in-memory базу и на амазоновском сервере с 4 терабайтами оперативки где будет храниться десятки миллиардов объектов связанных друг с другом ссылками. И получаем что gc будет сканировать все эти долгоживующие десятки млрд объектов и это будет пауза на десяток секунд.
Вы же в курсе, что почти весь стек так называемой Big Data и окрестностей написан на Java/Scala и работает на JVM с GC? Все эти Hadoop, Hive, Spark, Kafka, БД Cassandra и Hbase, кеш Elastic Search, Logstash и прочее? 😉
источник

AS

Aλexander Syrotenko in WebAssembly — русскоговорящее сообщество
И да, практически все промышленные коллекторы делают паузу, в том числе и arc 😉
источник

AS

Aλexander Syrotenko in WebAssembly — русскоговорящее сообщество
Исключением, пожалуй, можно вспомнить азуловский C4
источник

AT

Alexander Tchitchigin in WebAssembly — русскоговорящее сообщество
Aλexander Syrotenko
И да, практически все промышленные коллекторы делают паузу, в том числе и arc 😉
Новые GC для JVM - Shenandoah и XGC - делают очень короткую паузу, которая не зависит от количества объектов в куче и размера кучи.
источник

AS

Aλexander Syrotenko in WebAssembly — русскоговорящее сообщество
Alexander Tchitchigin
Новые GC для JVM - Shenandoah и XGC - делают очень короткую паузу, которая не зависит от количества объектов в куче и размера кучи.
ZGC, поправлю
источник

AT

Alexander Tchitchigin in WebAssembly — русскоговорящее сообщество
Aλexander Syrotenko
ZGC, поправлю
Спасибо, всё время путаюсь. 😊
источник

AS

Aλexander Syrotenko in WebAssembly — русскоговорящее сообщество
Alexander Tchitchigin
Новые GC для JVM - Shenandoah и XGC - делают очень короткую паузу, которая не зависит от количества объектов в куче и размера кучи.
Если посмотреть крупнее, то понятно почему, но это уже оффтоп для данного чатика
источник

AT

Alexander Tchitchigin in WebAssembly — русскоговорящее сообщество
Богдан
А зачем в wasm добавляют gc? Ведь у каждого языка и так уже есть свой gc заточен под особенности языка и возникает вопрос почему не скомпилировать в wasm этот gc вместе с рантаймом самого языка?
Во всех языках GC интегрирован в рантайм. Когда твой рантайм - WASM, хорошо бы чтобы GC был интегрирован в него.
Реализовать свой GC поверх WASM затруднительно, потому что невозможно получить доступ к стеку. Что оставляет только 2 возможности: подсчёт ссылок и теневой стек. Оба варианта обладают не самой высокой производительностью и про затачивание GC под язык говорить не приходится.
источник

E

Eugene in WebAssembly — русскоговорящее сообщество
MaxGraey
Помните я говорил про 3x если использовать SIMD в новом wasm бэкенде для tfjs? Так вот, это подтверждено практически + небольшой бонус в еще +50% если qfma использовать:
https://twitter.com/nsthorat/status/1208410035639992321
я правильно понимаю, что уже можно пробовать запускать на webassembly этот джсон парсер https://github.com/lemire/simdjson/issues/35 ?
источник

ҪҸ

Ҫѐҏӗѫӑ Ҹҋ 🤖 in WebAssembly — русскоговорящее сообщество
Команда V8 собирается включить бейслайн компилятор Liftoff на мобильных устройствах. Этот компилятор #WebAssembly уже включен по умолчанию в десктопной версии браузера начиная с версии 6.9. Liftoff имеет поддержку arm и arm64, но в данный момент поддержка мобильных платформ не используется. Включение необходимо для запланированного использования Liftoff в отладочних целях.
источник

ҪҸ

Ҫѐҏӗѫӑ Ҹҋ 🤖 in WebAssembly — русскоговорящее сообщество
надо пробовать
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Не факт. Во первый wasm sind это фиксированные 128-битовые вектора, то есть только SSE1, SSE2 (если брать c SIMD на x86). Без SSE3 (нет горизонтального суммирования) и я уже молчу про SSE4 и AVX. Во вторых поддержка во стороны того же v8 еще не до конца проработана:
https://github.com/WebAssembly/simd/blob/master/proposals/simd/ImplementationStatus.md
источник

MV

Mikhail Voronov in WebAssembly — русскоговорящее сообщество
добрый вечер, Вы же не спамер?
источник

M

MORNING in WebAssembly — русскоговорящее сообщество
Mikhail Voronov
добрый вечер, Вы же не спамер?
спамер скорее всего, к нам зашел бот с такой же аватаркой в то же время
источник

MV

Mikhail Voronov in WebAssembly — русскоговорящее сообщество
ок, спасибо, удалил
источник
2019 December 24

M

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

M

MaxGraey in WebAssembly — русскоговорящее сообщество
источник
2019 December 25

AG

Andrey Gershun in WebAssembly — русскоговорящее сообщество
Уважаемые коллеги, доброе утро! Можете посоветовать: мне нужно срочно в течение недели написать программу-солвер для решения задач линейного программирования и смешанного целочисленного программирования (симплекс-метод, задача коммивояжера и т.п.). Все алгоритмы у меня есть, писать буду сам. Оценочный размер - три-четыре тысяч строк.

Я хотел попробовать сделать это на AssemblyScript, сделал даже первый набросок, но понял, что по ходу возникает куча вопросов по простым поводам, например, как передать массив из AS в JS и т.п.

Можете посоветовать место или формат общения, где можно было бы позадавать такие простые вопросы? В благодарность за поддержку готов оформить ответы в виде FAQ, статьи и подготовить выступление на митапе 😂
источник

EO

Eugene Obrezkov in WebAssembly — русскоговорящее сообщество
Andrey Gershun
Уважаемые коллеги, доброе утро! Можете посоветовать: мне нужно срочно в течение недели написать программу-солвер для решения задач линейного программирования и смешанного целочисленного программирования (симплекс-метод, задача коммивояжера и т.п.). Все алгоритмы у меня есть, писать буду сам. Оценочный размер - три-четыре тысяч строк.

Я хотел попробовать сделать это на AssemblyScript, сделал даже первый набросок, но понял, что по ходу возникает куча вопросов по простым поводам, например, как передать массив из AS в JS и т.п.

Можете посоветовать место или формат общения, где можно было бы позадавать такие простые вопросы? В благодарность за поддержку готов оформить ответы в виде FAQ, статьи и подготовить выступление на митапе 😂
вы не ошиблись местом, здесь помогут :)

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