Slide 1

Slide 1 text

WebAssembly で 世界最速の数独ソルバーを作った話 by Yuto

Slide 2

Slide 2 text

Yuto の自己紹介 ● 1995年生まれ(28歳) ● ENECHANGE株式会社 ● フロントエンドエンジニア ● TypeScript, React, Next.js ● 趣味で Svelte, Solid, Rust, WebAssembly など ● Deno 気になる

Slide 3

Slide 3 text

最近、WebAssembly (Wasm) 流行っていますね ● Amazon Prime Videoが動画再生にWebAssemblyを採用 ● Figma is powered by WebAssembly ● WebAssembly対応でRubyは何が出来るようになったのか?

Slide 4

Slide 4 text

僕も WebAssembly 触ってみたい

Slide 5

Slide 5 text

でも、普通にTutorialやるだけじゃ つまんないな

Slide 6

Slide 6 text

そうだ、数独を普通のJSとWasmで実装して比 較してみよう

Slide 7

Slide 7 text

JavaScript (TypeScript) での実装 数独を一瞬で解いてしまうプログラム 平均 6.1ms

Slide 8

Slide 8 text

Rust + Wasm での実装 数独を一瞬で解いてしまうプログラム(Rust版) 平均 2.2ms!! 圧勝! JSよりも3.9ms速いという結果に

Slide 9

Slide 9 text

ちなみに せっかくなのでロジック部分をnpmで公開しちゃいましたw https://www.npmjs.com/package/sudoku-solver-ts

Slide 10

Slide 10 text

まとめ 詳しいことはこちらの記事に書いたので興味のある方は読んでください Rust + WebAssembly で、世界最速の数独ソルバーを作った話 [bitboard] - Qiita WebAssembly は、今のところ、パフォーマンス最適化の目的で Rust や C++ などの高 速な言語が選ばれているが、今後、好きな言語でフロントエンド開発できるという用途で も使われるようになるかも? Rubyでフロントエンドを書くという時代がやってくるかも!

Slide 11

Slide 11 text

PR ENECHANGEではエネルギー問題に興味のある エンジニアを絶賛募集しています! ENECHANGE(エネチェンジ) エンジニア採用サイト 社会の動きと連動しながら、サービスを改善し続ける。「エネ チェンジ」の開発にはそんな面白さがある | ENECHANGE 株式会社