Size: a a a

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

2020 August 24

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Vladimir
Попробуй в жсон, и на жсе парсить. По идее биндген так и работает(или работал раньше)
Дичайший оверхед. Как по скорости так и по размеру бандла будет
источник

А

Андрей in WebAssembly — русскоговорящее сообщество
Ага, учитывая, что график большой нужен. Буду костылить передачу склеянного массива, и размеров частей, с разбиением на массивы в жсе наверное. Хотя это все равно ужас какой-то
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Ну есть всегда вариант сделать flatten() для вложенных масивов + дополнительно еще размер вложенного массива, что бы правильно разобрать на массивы на стороне хоста уже
источник

А

Андрей in WebAssembly — русскоговорящее сообщество
MaxGraey
Ну есть всегда вариант сделать flatten() для вложенных масивов + дополнительно еще размер вложенного массива, что бы правильно разобрать на массивы на стороне хоста уже
Вот я про то и говорю
источник

А

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

M

MaxGraey in WebAssembly — русскоговорящее сообщество
А то есть это не прямоугольная матрица?
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Тогда да, все намного сложнее
источник

А

Андрей in WebAssembly — русскоговорящее сообщество
MaxGraey
А то есть это не прямоугольная матрица?
Можно было бы и прямоугольной матрицей представить, но я решил сразу строить оригинальные данные, раз вручную буду делать. Там +- десяток элементов может быть при 100к точек
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Можешь сделать иначе. Придумай элемент-терминатор для плоского массива. Например ты знаешь, что NaN или Inf у тебя никогда не будут попадаться, тогда 2д массив вида:

arr = [
 [1.0, 2.0, 3.0],
 [1.0],
 []
]

Можно представить в плоском виде как:

arrFlattened = [
 1.0, 2.0, 3.0, NaN,
 1.0, NaN,
 NaN,
 NaN
]
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
а-ля \0 только для массива)
источник

N

Nikolay in WebAssembly — русскоговорящее сообщество
MaxGraey
Можешь сделать иначе. Придумай элемент-терминатор для плоского массива. Например ты знаешь, что NaN или Inf у тебя никогда не будут попадаться, тогда 2д массив вида:

arr = [
 [1.0, 2.0, 3.0],
 [1.0],
 []
]

Можно представить в плоском виде как:

arrFlattened = [
 1.0, 2.0, 3.0, NaN,
 1.0, NaN,
 NaN,
 NaN
]
тоже об этом подумал
источник

А

Андрей in WebAssembly — русскоговорящее сообщество
Но оно же за O(n) будет разделяться. Слайс не за константу отработает?
источник

N

Nikolay in WebAssembly — русскоговорящее сообщество
к прямоугольному*, возможно, стоит все это привести
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Ну а на стороне хоста потом даже не нужно будет приводить к двухмерному. Просто вместо этого:

for (let j  =  0; j < arr.lenght; j++) {
 let innerArr = arr[j];
 for (let i =  0; i < innerArr.lenght; j++) {
   let el = innerArr[i];
   …
 }
}

Будет

for (let j  =  0; j < arrFlattened.lenght; j++) {
 let el = arrFlattened[j];
 if (!isNaN(el)) {
   …
 }
}

То есть это даже может быть быстрее 2д массива
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
НО вот если будет нужен именно размер какого то вложенного массива, то тогда придеться все перебирать и считать за O(N)

Тогда лучше конечно перевести это в 2д массив один раз.
источник

lp

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

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Кто еще не запрыгнул в Blazor trai=i=i=i=i=i=i=i=i=i=i=in? 😂
https://twitter.com/carlfranklin/status/1268207024782872577
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Кстати здесь идут жаркие дебаты по поводу требований и целей wasm GC:
https://github.com/WebAssembly/gc/pull/121
источник
2020 August 25

PG

Polina Gurtovaya in WebAssembly — русскоговорящее сообщество
Мы наконец-то дописали статью про wasm для начинающих :) https://evilmartians.com/chronicles/hands-on-webassembly-try-the-basics
источник

PG

Polina Gurtovaya in WebAssembly — русскоговорящее сообщество
Фидбек очень приветствуется (любой :)
источник