Size: a a a

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

2019 October 12

Б

Богдан in WebAssembly — русскоговорящее сообщество
Tux
так они все сводятся к шаред мемори))
те что в списке работают через копирования памяти с одного места на другое, а шаред-мемори это модификация причем на уровне процессора то есть никаких накладных расходов со стороны ос, то есть это тупо mov инструкция в процессоре которая автоматически меняет ячейку памяти не только в своем но и в чужом процессе
источник

lp

lil pep in WebAssembly — русскоговорящее сообщество
как бы там ни было, wasm позволяет запускать множество инстансов в одном процессе из-за чего собственно отпадает необходимость IPC
источник

T

Tux in WebAssembly — русскоговорящее сообщество
Богдан
те что в списке работают через копирования памяти с одного места на другое, а шаред-мемори это модификация причем на уровне процессора то есть никаких накладных расходов со стороны ос, то есть это тупо mov инструкция в процессоре которая автоматически меняет ячейку памяти не только в своем но и в чужом процессе
точно через копирование? мне всегда казалось, что там симофор на  батчи чтения/записи просто
источник

T

Tux in WebAssembly — русскоговорящее сообщество
lil pep
как бы там ни было, wasm позволяет запускать множество инстансов в одном процессе из-за чего собственно отпадает необходимость IPC
хипстеры изобрели ffi
источник

lp

lil pep in WebAssembly — русскоговорящее сообщество
Tux
точно через копирование? мне всегда казалось, что там симофор на  батчи чтения/записи просто
shm не участвует в основном. Представь как например стриминговый подход например через tcp
источник

T

Tux in WebAssembly — русскоговорящее сообщество
так на локальной петле tcp по сути даунгрейдится до шаред мемори, если я ничего не путаю
источник

lp

lil pep in WebAssembly — русскоговорящее сообщество
Tux
хипстеры изобрели ffi
не обязательно ffi
источник

lp

lil pep in WebAssembly — русскоговорящее сообщество
Tux
так на локальной петле tcp по сути даунгрейдится до шаред мемори, если я ничего не путаю
у тебя read определен как копирующий вызов
источник

T

Tux in WebAssembly — русскоговорящее сообщество
lil pep
у тебя read определен как копирующий вызов
?
источник

lp

lil pep in WebAssembly — русскоговорящее сообщество
lil pep
не обязательно ffi
конечно это зависит от определение FFI, но как я отметил там может быть прослойка
источник

lp

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

lp

lil pep in WebAssembly — русскоговорящее сообщество
обрати внимание на сигнатуру
источник

Б

Богдан in WebAssembly — русскоговорящее сообщество
Tux
точно через копирование? мне всегда казалось, что там симофор на  батчи чтения/записи просто
ос в конечном счете тоже будет юзать шаред памяти для связи между процессами но сам интерфейс  тех подходов что в списке (Unix Domain Sockets, TCP on localhost, UDP on localhost, sdtin/stdout) предполагает что мы пересылаем какой-то кусок данных а это именно что копирование, более того это еще и системный вызов и переключение контекста на каждую пересылку, когда же шаред-память вообще работает без системных вызовов (полностью в юзерспейсе)
источник

DS

Dimas Shakhtarin in WebAssembly — русскоговорящее сообщество
Tux
я как раз шину для wasm модулей делаю)
А для чего делаешь, если не секрет? У нас есть реализация ffi при не шаред памяти на нескольких языках
источник

T

Tux in WebAssembly — русскоговорящее сообщество
Богдан
ос в конечном счете тоже будет юзать шаред памяти для связи между процессами но сам интерфейс  тех подходов что в списке (Unix Domain Sockets, TCP on localhost, UDP on localhost, sdtin/stdout) предполагает что мы пересылаем какой-то кусок данных а это именно что копирование, более того это еще и системный вызов и переключение контекста на каждую пересылку, когда же шаред-память вообще работает без системных вызовов (полностью в юзерспейсе)
без системных вызовов?
источник

DS

Dimas Shakhtarin in WebAssembly — русскоговорящее сообщество
Хотя для шаред памяти немного изменений надо будет внести
источник

T

Tux in WebAssembly — русскоговорящее сообщество
Dimas Shakhtarin
А для чего делаешь, если не секрет? У нас есть реализация ffi при не шаред памяти на нескольких языках
пет прожект. собственно для связи модулей в приложении)
источник

lp

lil pep in WebAssembly — русскоговорящее сообщество
Tux
без системных вызовов?
все что касается потоков (uds, udp, tcp, stdio) - с
источник

Б

Богдан in WebAssembly — русскоговорящее сообщество
Tux
без системных вызовов?
угу, магия процессора под названием виртуальная адресация, накладные расходы полностью нулевые)
источник

T

Tux in WebAssembly — русскоговорящее сообщество
в русте, полагаю там сплошной unsafe
источник