Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
はじめてのWebAssembly
Search
Kazuki Shibata
May 18, 2017
Technology
2k
2
Share
はじめてのWebAssembly
Nihonbashi.js #1の資料です。
Kazuki Shibata
May 18, 2017
More Decks by Kazuki Shibata
See All by Kazuki Shibata
microCMSでif文を作る
shibe97
1
1.3k
SvelteKitでJamstackを試す
shibe97
1
1.3k
フロントエンドのトレンド〜サーバーレスSPA、Jamstack〜
shibe97
16
5k
Jamstack × PWA におけるキャッシュ戦略
shibe97
3
1.3k
CSR / SSR / SSGの動向2020
shibe97
2
1.8k
Jamstack×microCMS 実装編
shibe97
4
1.1k
SentryでSPAのエラーログを収集する
shibe97
1
1.8k
useRefについて調べてみた
shibe97
1
220
フロントエンドエンジニアのキャリアパス
shibe97
9
4k
Other Decks in Technology
See All in Technology
[モダンアプリ勉強会]今更聞けないGit/GitHub入門
tsukuboshi
0
190
形式手法特論:公平性制約の位相的特徴づけ #kernelvm / Kernel VM Study Kansai 12th
ytaka23
1
710
イベントストーミングとKiroの仕様駆動開発で実現する要件の認識合わせプロセス
syobochim
7
1.1k
React、まだ楽しくて草
uhyo
7
3.9k
生成 AI × MCP で切り拓く次世代 SRE!自律型運用への挑戦と開発者体験の進化
_awache
0
110
oracle-to-databricks-migration-with-llm-and-dbt
casek
1
430
製造業のクラウド活用最適解〜AI,DXを加速するデータ基盤の作り方〜
hamadakoji
0
330
Oracle Cloud Infrastructure IaaS 新機能アップデート 2026/3 - 2026/5
oracle4engineer
PRO
1
160
サプライチェーンセキュリティの空白地帯 - 信頼できる”依存性”の未来を考える
rung
PRO
2
650
Unlocking the Apps
pimterry
0
190
脅威をエンジニアリングの糧にして:恐怖を乗り越えた先にあったもの / Turn threats into fuel for engineering: what lay beyond overcoming fear
nrslib
1
380
Cloud Run のアップデート 触ってみる&紹介
gre212
0
300
Featured
See All Featured
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
720
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Optimising Largest Contentful Paint
csswizardry
37
3.7k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
600
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
71
40k
Typedesign – Prime Four
hannesfritz
42
3.1k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
1
140
The Cult of Friendly URLs
andyhume
79
6.9k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
1
340
Being A Developer After 40
akosma
91
590k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
410
Transcript
͡Ίͯͷ8FC"TTFNCMZ ࣲాف!TIJCF /JIPOCBTIJKT
σβΠφʔ / ϑϩϯτΤϯυΤϯδχΞ :BIPP+"1"/ͷࠂܥπʔϧͷ ϑϩϯτΤϯυΛ୲͍ͯ͠·͢ ࣲా ف @shibe97
+BWB4DSJQUେ͖ͬࢠͰ͢
͚Ͳ
ͪΐͬͱ͖ͨ
ͱ͍͏ΑΓ
3FBDU 3FEVY͖ͨ
Կ͔৽͍͠ͷʹखΛग़ͯ͠ΈΑ͏ɾɾɾ
None
+BWB4DSJQUͷ
͍ͩͿ͘ͳ͚ͬͨͲɺॏ͍ॲཧʹऑ͍ʢϒϥβݻ·Δʣ ܕ͕໌ࣔతͰͳ͍ ίϯύΠϧܕͰͳ͘ɺΠϯλϓϦλܕݴޠ 'JSFGPYʢ4QJEFS.POLFZʣ &EHFʢ$IBLSBʣ $ISPNFʢ7ʣ
ͦͦ͜ΜͳෳࡶͳͷΛ࡞ΔͨΊʹੜͨ͠ݴޠ͡Όͳ͍ "KBYͷීٴͱڞʹαʔόαΠυͷॲཧ͕ΫϥΠΞϯταΠυʹ Ҡ͖ͬͯͨ͋ͨΓ͔Βແཧ͕ग़࢝Ίͨ
+BWB4DSJQU࣮ߦ࣌ͷྲྀΕ ϒϥβ͕+BWB4DSJQUͷߏจղੳΛߦ͍ɺ"45ʢ"CTUSVDU4ZOUBY 5SFFʣʹม "45ΛόΠτίʔυʹม͠ɺԾϚγϯ্Ͱಈ࡞ͤ͞Δ ܕใ͕ݻ·͖ͬͯͨΒɺ෦తʹػցޠʹม ʢ+VTUJO5JNFίϯύΠϧʣ
ࣄલʹܕఆ͕ٛͰ͖Εʜ
asm.js
BTNKTͬͯͲΜͳͷ .P[JMMB͕ఏএͨ͠+BWB4DSJQUͷߴԽٕज़ ͋͘·Ͱ+BWB4DSJQUϑΝΠϧ ͋Δϧʔϧʹै͏ͱܕใΛ༩͑Δ͜ͱ͕Ͱ͖Δ ʢϒϥβଆͷαϙʔτ͕ͪΖΜඞཁʣ
function AddFunctions(){ "use asm"; function add1(value){ value = value |
0; // Ҿ int ͩͱ໌ࣔ var result = 0; // int ͱͯ͠એݴ result = (value + 1) | 0; // int Ωϟετ return result; } return { add1: add1 } }
BTNKTʹΑΔҾͷܕఆٛ JOU WBMVFWBMVFc EPVCMF WBMVF WBMVF qPBU WBMVFG WBMVF
BTNKTͷͭΒΈ ԋࢉ͔͠Ͱ͖ͳ͍ จࣈྻΦϒδΣΫτΛແཧΓදݱ͠Α͏ͱ͢ΔͱɺόΠφϦ͕ བྷΜͰ͖ͯπϥ͍ ਓ͕ॻ͘ݴޠ͡Όͳ͍
ଞͷݴޠ͔Βม͢Εʜ
--7.ίϯύΠϧͷΈ $ $ 0CKFDUJWF$ (P 3VTU தؒݴޠ +BWB4DSJQU ͦͷଞݴޠ
˞+BWB4DSJQU༻ͷ--7.ϕʔείϯύΠϥ
มͰ͖ͨɺ͔͠͠ʜ ϑΝΠϧ༰ྔ͕େ͖͍ )FMMP8PSME͚ͩͰ, BTNKT.P[JMMB͕ߟ͑ͨͷ͕ͩɺશϒϥβϕϯμʔڠྗͯ͠ ͬͱ͍ܰܗࣜ࡞ͬͪΌ͏ʁ
ʢXBTNʣ
ݱঢ়ɺXBTNʹมͰ͖Δݴޠ $ $ 3VTU
Α͠ɺ3VTUͩʂ
ͬ͘͟Γ3VTUͬͯʁ όʔδϣϯϦϦʔε .P[JMMB͕։ൃ 'JSFGPY͔Β3VTUͰॻ͍ͨίʔυ͕ಈ͍͍ͯΔ ҆શੑɺฒྻੑʹ༏Ε͍ͯΔ
3VTUͷओͳ༻్ 4ZTUFN1SPHSBNNJOH /FUXPSL1SPHSBNNJOH ,FSOFM 8FC"TTFNCMZ
+BWB4DSJQU 1)1 3VCZ +BWB $ 3VTU ʢݸਓͷݟղͰ͢ʣ
FNTDSJQUFO +BWB4DSJQU"1* 8FC"TTFNCMZͰͷར༻ྫ index.rs index.wasm TypedArray
ࢼ͠ʹ3VTUͰ%0.Λు͖ग़ͤΔ͔ ͬͯΈͨ
XFCQMBUGPSNͱ͍͏DSBUFΛ͏ /PEFͰ͍͏QBDLBHFతͳͷ
)5.-ͷத <script> var Module = {} fetch('index.wasm') .then((response) => response.arrayBuffer())
.then((buffer) => { Module.wasmBinary = buffer; var script = document.createElement('script'); script.src = 'index.js'; document.body.appendChild(script); }) </script>
σϞ
ͳΜ͔3FBDUDSFBUF&MFNFOU ͬΆ͕͋͞Δ
+49తͳͷ͕͋Ε ͍͍ײ͡ͳΔͷͰʁ
ͱࢥͬͨΒ͋ͬͨ
KTYSTSFBDUST
͚Ͳ·ͩ։ൃͷॳظஈ֊ͬΆ͍Ͱ͢
5PEP.7$ IUUQSVTUXFCQMBUGPSNHJUIVCJPSVTUUPEPNWD
·ͱΊ ͍ͭʹ+BWB4DSJQUҎ֎ͷݴޠϒϥβͰಈ͔ͤΔ࣌ʹ 3VTU·ͩ8FCΞϓϦ੍࡞ʹऑ͍͕ɺࠓޙ͍ͯͬͨ͠߹ʹ ϑϩϯτΤϯυ͕มΘΔՄೳੑ͕͋Γͦ͏
5IBOLT 5XJUUFS(JU)VC!TIJCF