Size: a a a

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

2019 November 19

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Слайды из митапа по WASI HTTP модулю кому интерестно:
Предложение для proxy api: https://docs.google.com/presentation/d/1QMGEuVD9p5iNbzxzgT4p2PXpxg1MjfSbpbJdw6g6Q_Y/edit#slide=id.g62354edd18_1_5099
http api: https://github.com/pchickey/wasi_http_strawman/blob/master/wasi_http.md
источник

M

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

AR

Andrey Roenko in WebAssembly — русскоговорящее сообщество
Fogr
может нубский вопрос, но всё же, почему программа на WASM весит больше, чем на js?
Там большой бинарь из-за stl, парсера протобафа, пары либ + жс клей емскриптоновский. Ну и мы не особо упарывались по минификации сборки
источник

ҪҸ

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

ҪҸ

Ҫѐҏӗѫӑ Ҹҋ 🤖 in WebAssembly — русскоговорящее сообщество
там ваще копейки обычно. ну может у вас схемо супер сложная конечно
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Andrey Roenko
Там большой бинарь из-за stl, парсера протобафа, пары либ + жс клей емскриптоновский. Ну и мы не особо упарывались по минификации сборки
30% конечено не то, что ожидаешь от WebAssembly. Но я почему то уверен, что весь профит съел интероп и если действительно поставить себе цель и отказаться от embind делая все в ручную через линейный буфер (без лишнего копирования), то можно сушественно улучшить показатели. Другое дело, что это сопровождать конечно будет трудно. Попробуйте еще через год, когда во всех браузерах будет SIMD и возможно interface types
источник

AR

Andrey Roenko in WebAssembly — русскоговорящее сообщество
План примерно такой, да. Пока у нас есть более дешевые способы ускорить движок. Но когда-то они кончатся и мы попробуем еще раз
источник

ҪҸ

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

lp

lil pep in WebAssembly — русскоговорящее сообщество
MaxGraey
Вставлю свои пять копеек, что Раст, что C++ нужно уметь готовить. Стрипать сборки, выкидывать jemalloc и заменять на более легкий, в Rust например до сих пор нету musl и используется сттандартная либа, но он хорошо может в LTE оптимизацию. Единственнй ЯП пока который в этом всем не нуждается и у которого самый легкий рантайм это AS =)
jemalloc - это история. Давно по умолчанию при сборке используется системный аллокатор, аля malloc/free. При сборке w32-u-u используется старый добрый dlmalloc, IIRC.

а что значит "используется стандартная си либа"?
источник

ҪҸ

Ҫѐҏӗѫӑ Ҹҋ 🤖 in WebAssembly — русскоговорящее сообщество
lil pep
jemalloc - это история. Давно по умолчанию при сборке используется системный аллокатор, аля malloc/free. При сборке w32-u-u используется старый добрый dlmalloc, IIRC.

а что значит "используется стандартная си либа"?
о, хорошая идея сокращать как w32-u-u)
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
lil pep
jemalloc - это история. Давно по умолчанию при сборке используется системный аллокатор, аля malloc/free. При сборке w32-u-u используется старый добрый dlmalloc, IIRC.

а что значит "используется стандартная си либа"?
На сколько я помню emscripten использут emmalloc
> а что значит "используется стандартная си либа"?
libc которая намного жирнее musl
https://www.etalabs.net/compare_libcs.html
источник

lp

lil pep in WebAssembly — русскоговорящее сообщество
MaxGraey
На сколько я помню emscripten использут emmalloc
> а что значит "используется стандартная си либа"?
libc которая намного жирнее musl
https://www.etalabs.net/compare_libcs.html
да мб, я w32-u-e не считаю за таргет ))
что касается libc, я все равно не понимаю.
в какой момент в w32-u-u линкуется libc и зачем?
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
lil pep
да мб, я w32-u-e не считаю за таргет ))
что касается libc, я все равно не понимаю.
в какой момент в w32-u-u линкуется libc и зачем?
Ну если делать no_std то ничего не линкуется конечно)
источник

lp

lil pep in WebAssembly — русскоговорящее сообщество
MaxGraey
Ну если делать no_std то ничего не линкуется конечно)
а если не делать?
источник

lp

lil pep in WebAssembly — русскоговорящее сообщество
MaxGraey
На сколько я помню emscripten использут emmalloc
> а что значит "используется стандартная си либа"?
libc которая намного жирнее musl
https://www.etalabs.net/compare_libcs.html
судя по всему оно работает через libsystem так же
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
lil pep
а если не делать?
Не знаю. Знаю что команда раста до сих пор не влила libm (который порт libm из musl)
https://github.com/rust-lang/libm
источник

lp

lil pep in WebAssembly — русскоговорящее сообщество
ну libm дело то другое
я особо в не-no_std коде не особо ковыряюсь, но для меня была бы загадка для чего-же в него линковать libc, если в основном большинство API рано или поздно заканчиваются трапом
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
lil pep
ну libm дело то другое
я особо в не-no_std коде не особо ковыряюсь, но для меня была бы загадка для чего-же в него линковать libc, если в основном большинство API рано или поздно заканчиваются трапом
то есть Rust не зависит от libc?
источник

MV

Mikhail Voronov in WebAssembly — русскоговорящее сообщество
MaxGraey
то есть Rust не зависит от libc?
зависит. А если быть точнее зависит на столько, насколько вот тут (https://github.com/rust-lang/rust/tree/9ebf47851a357faa4cd97f4b1dc7835f6376e639/src/libstd/sys/wasm) есть инклуды libc библиотичены файлов
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Mikhail Voronov
зависит. А если быть точнее зависит на столько, насколько вот тут (https://github.com/rust-lang/rust/tree/9ebf47851a357faa4cd97f4b1dc7835f6376e639/src/libstd/sys/wasm) есть инклуды libc библиотичены файлов
Да я то это как раз знаю)
источник