Size: a a a

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

2019 June 17

NK

ID:414983998 in WebAssembly — русскоговорящее сообщество
ID:414983998
В общем там есть одна особенность связанная с managed объектами. Вот так будет работать:

export function createMatrix(rows: i32, cols: i32): f64[][] {
  const data = new Array<f64[]|null>(rows);
  for (let i = 0; i < rows; i++) {
     data[i] = new Array<f64>(cols);
     for (let j = 0; j < cols; j++) {
       data[i][j] = Math.random() * 2 - 1;
     }
  }    
  return data as f64[][];
}

https://webassembly.studio/?f=v97zqx1s4pc
Или так:
export function createMatrix(rows: i32, cols: i32): f64[][] {
  const data: f64[][] = [];
  for (let i = 0; i < rows; i++) {
     data.push(new Array<f64>(cols));
     for (let j = 0; j < cols; j++) {
       data[i][j] = Math.random() * 2 - 1;
     }
  }    
  return data;
}
источник

AA

Andranik Arakelov in WebAssembly — русскоговорящее сообщество
ID:414983998
Если ты хочешь создать что то вроде glm только на wasm, то это уже кажется есть и супер буста ждать не стоит, потому что если ты собераешься это использовать на стороне хоста (JS) то будет весь бенефит съест интероп, то есть расходы на копирование туда-сюда данных
ja xochy ispolzovat  na nodejs servere, poetomy zainterosovalsja wasmom
источник

AA

Andranik Arakelov in WebAssembly — русскоговорящее сообщество
ID:414983998
Или так:
export function createMatrix(rows: i32, cols: i32): f64[][] {
  const data: f64[][] = [];
  for (let i = 0; i < rows; i++) {
     data.push(new Array<f64>(cols));
     for (let j = 0; j < cols; j++) {
       data[i][j] = Math.random() * 2 - 1;
     }
  }    
  return data;
}
RuntimeError: unreachable
источник

NK

ID:414983998 in WebAssembly — русскоговорящее сообщество
Andranik Arakelov
RuntimeError: unreachable
источник

AA

Andranik Arakelov in WebAssembly — русскоговорящее сообщество
ID:693357436
а нет такой вероятности, что javascript достаточно быстрый для таких задач? Что дело не в штрафах на interop и не в копировании данных
esli ti lypisch na 1 milionraz dati, dapystim  IMAGE RECOGNITION tam pixel soberaesch s 1 kartini 625 vxodov, javascript glychit yjasno 😕
источник

AA

Andranik Arakelov in WebAssembly — русскоговорящее сообщество
rabotaet,znachit nado bilo  bez  " | null "
источник

NK

ID:414983998 in WebAssembly — русскоговорящее сообщество
Andranik Arakelov
rabotaet,znachit nado bilo  bez  " | null "
Отсалось только распаковать узазатель на стороне JS. Для этого нужен будет loader (https://github.com/AssemblyScript/assemblyscript/tree/master/lib/loader)
источник

AA

Andranik Arakelov in WebAssembly — русскоговорящее сообщество
Mne etot loader ne nyjen,ja bydy cherez studio kodit, a wasm file kopirovat
источник

NK

ID:693357436 in WebAssembly — русскоговорящее сообщество
ну в приведенном коде на as я очистки памяти не вижу, то есть в больших масштабах тоже будь здоров как лагать будет...?
источник

NK

ID:414983998 in WebAssembly — русскоговорящее сообщество
ID:693357436
ну в приведенном коде на as я очистки памяти не вижу, то есть в больших масштабах тоже будь здоров как лагать будет...?
Здрасте примехали) В AS уже ARC завезли, так что все очищается. Единственное на хосте нужно дергать relese/retain. Но это у всех так,  просто в Rust например wasm-bindgen это делает за тебя
источник

NK

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

AA

Andranik Arakelov in WebAssembly — русскоговорящее сообщество
Alex tam nety multidimensional, tam tolko   4x4 maks
источник

NK

ID:414983998 in WebAssembly — русскоговорящее сообщество
Andranik Arakelov
Alex tam nety multidimensional, tam tolko   4x4 maks
тогда советую хранить линейно как одномерный массив из 16-элементов
источник

AA

Andranik Arakelov in WebAssembly — русскоговорящее сообщество
16 elementov eto limit v wasme ?
источник

AA

Andranik Arakelov in WebAssembly — русскоговорящее сообщество
massiv eto array ?
источник

AA

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

NK

ID:414983998 in WebAssembly — русскоговорящее сообщество
Andranik Arakelov
16 elementov eto limit v wasme ?
нет) Я имею ввиду хранить как одномерный массив вместо двухмерного как у тебя сейчас
источник

AA

Andranik Arakelov in WebAssembly — русскоговорящее сообщество
a esli bosche to chto, wasm ne spravitsja ?
источник

NK

ID:414983998 in WebAssembly — русскоговорящее сообщество
Andranik Arakelov
a esli bosche to chto, wasm ne spravitsja ?
Да и сделает тебе формат диска.
источник

NK

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