Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AssemblyScriptではじめるWebAssembly入門

Avatar for asuka asuka
February 23, 2024

 AssemblyScriptではじめるWebAssembly入門

Avatar for asuka

asuka

February 23, 2024
Tweet

More Decks by asuka

Other Decks in Technology

Transcript

  1. 自己紹介 asuka 今年は仕事でWasm使いたいよね! SNS - X @a_skua - GitHub @a-skua

    - Zenn @askua - Blog www.askua.dev 2 去年は技術書典14, 15などに参加
  2. Dartの例 6 main.wasm main.mjs deno run --allow-read main.ts dart compile

    wasm main.dart DartからWasmにビルドして... JSでWasmをロードして起動
  3. Dartの例 7 main.wasm main.mjs deno run --allow-read main.ts dart compile

    wasm main.dart DartからWasmにビルドして... JSでWasmをロードして起動 このJSは何? え,そのまま実行できないの ?
  4. AssemblyScript入門 13 asinit を実行すると,assembly/index.ts などのファイルが作成される. build/release.wasm build/release.js npm run asbuild

    deno run --allow-read main.ts 知ってる書き方! 知ってる書き方!! 面倒なことは全部ここ (読まなくて良い)
  5. AssemblyScriptの例 18 benchmark time (avg) p75 p99 p995 p999 js

    n=92 4.864316037 4.625 5.7875 6.0958 19.5542 js(bigint) n=92 18.13722707 18.0625 19.6333 20.1334 20.9333 wasm n=92 22.57033527 22.8042 26.3 28.8375 42.3042 wasm(iterative) n=92 33.56680893 33.6042 36.1875 36.6709 37.25 js(iterative) n=92 112.3810171 112.7625 117.3709 118.0959 118.7458 js(iterative, bigint) n=92 340.2484605 339.7541 385.5333 410.1375 410.1375 wasm(n=92) : 7540113804746346429n js (n=92) : 7540113804746346000 (誤差) js (n=92, bigint): 7540113804746346429n