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

AssemblyScriptではじめるWebAssembly入門

asuka
February 23, 2024

 AssemblyScriptではじめるWebAssembly入門

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