Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up
for free
How V8 executes WASM
Taketoshi Aono(青野健利 a.k.a brn)
July 24, 2019
Programming
3
1.1k
How V8 executes WASM
WASM Pipeline of V8 javascript engine
Taketoshi Aono(青野健利 a.k.a brn)
July 24, 2019
Tweet
Share
More Decks by Taketoshi Aono(青野健利 a.k.a brn)
See All by Taketoshi Aono(青野健利 a.k.a brn)
brn
2
360
brn
3
340
brn
0
330
brn
8
2.2k
brn
1
380
brn
0
410
brn
0
520
brn
0
430
brn
5
1.5k
Other Decks in Programming
See All in Programming
trajchevska
2
360
horie1024
1
380
akatsukinewgrad
0
200
line_developers_tw2
0
720
adoranwodo
0
220
line_developers_tw
1
490
akatsukinewgrad
0
190
e10dokup
0
450
yagitatsu
2
700
hanakla
2
3k
akkeylab
0
350
cocoeyes02
0
220
Featured
See All Featured
holman
288
130k
davidbonilla
69
3.5k
ddemaree
274
31k
paulrobertlloyd
71
1.4k
jacobian
255
20k
eileencodes
113
25k
3n
163
22k
lemiorhan
626
42k
morganepeng
17
1.1k
jonrohan
1021
380k
pedronauck
652
110k
shpigford
368
42k
Transcript
H o w V 8 E x e c u
t e W A S M
Name !CSO 5BLFUPTIJ"POP੨݈ར Occupation 'SPOUFOE%FWFMPQFS1SPEVDU0XOFS Company $ZCFSBHFOU"EUFDI4UVEJP"*.FTTFOHFS OSS $POUSJCVUPSPG7
About IUUQJOGPCODI
8"4.࣮ߦύε
8"4. -JGU0⒎ JBY 5VSCP'BO 0UIFST 5VSCP'BO %FCVH *OUFSQSFUFS
-JGUPGG 8"4.ઐ༻ͷ#BTFMJOFίϯύΠϥ 8"4.ͷ01ίʔυΛ+*5ʹม͢Δ ϨδελϚγϯ͕ͩɺͷϩʔυʹελοΫ͏ ϨδελׂϦχΞʹߦ͍ɺϨδελ͕ރׇͨ͠ΒTQJMM͠ɺಛʹੜଘظؒ ͷੳ͍ͯ͠ͳ͍ 9ͱ*"ͷΈσϑΥϧτͰ0/ʹͳ͍ͬͯΔ
5VSCP'BO 7ͷ࠷దԽ+*5༻ύΠϓϥΠϯ άϥϑΛੜ͔ͯ͠Βɺάϥϑͷ࠷దԽύΠϓϥΠϯΛ௨Γɺ *OTUSVDUJPO4FMFDUPSΛܦͯ+*5ίʔυΛग़ྗ͢Δ +BWBTDSJQU͜ͷ࠷దԽΛܦͯ+*5ίʔυ͕ग़ྗ͞ΕΔ
5VSCP'BO1JQFMJOF
8"4. %FDPEF 'VODUJPO#PEZ 44" (SBQI 0QUJNJ[BUJPO QBTT 4DIFEVMJOH 3FHJTUFS "MMPDBUJPO
*OTUSVDUJPO TFMFDUJPO $PEF (FOFSBUJPO
-JGUPGG1JQFMJOF
8"4. %FDPEF 'VODUJPO#PEZ $PEF (FOFSBUJPO
KBWBTDSJQU1JQFMJOF
+4 44" (SBQI 0QUJNJ[BUJPO QBTT 4DIFEVMJOH 3FHJTUFS "MMPDBUJPO *OTUSVDUJPO TFMFDUJPO
$PEF (FOFSBUJPO 1BSTF "45 #ZUFDPEF (SBQI #ZUFDPEF
-JGUPGG5JFSJOH
8"4. -JGU0⒎ &YFDVUFCBTFMJOF+*5 5VSCP'BO *NNFEJBUFMZTUBSUCBDLHSPVOEDPNQJMF
5JFSJOH -JGUPGGͷ߹࠷ॳʹ-JGUPGGͰ#BTFMJOF+*5Λग़ྗ࣮ͯ͠ߦ͢Δ ͜͏͢Δ͜ͱͰελʔτΞοϓλΠϜͷߴԽΛߦ͏ ͞Βʹ8"4.+4ͱҧͬͯ੩తʹશͯܕ͚͞Ε͍ͯΔͨΊɺ࣮ߦͷ5SBDF ΛߦΘͣʹଈ࠷దԽ+*5Λग़ྗ͢Δ͜ͱ͕Ͱ͖Δ ͦͷͨΊɺ#BTFMJOFΛੜͭͭ͠όοΫάϥϯυͰ5VSCP'BOʹΑΔ࠷దԽ +*5ͷग़ྗΛಉ࣌ʹߦ͍ͬͯΔ
*OUFSQSFUFS 8"4.༻ͷΠϯλϓϦλ࣮ ී௨ʹ࣮ߦͨ͠߹ʹ͜ͷύεʹೖΔ͜ͱͳ͍ σόοά༻్ͱͯ͠ͷΈଘࡏ͢Δ ͱ͍ͯ
$PEF$BDIJOH
5VSCP'BODPEFDBDIJOH 8"4.ͷίʔυҰίϯύΠϧ͞ΕΔͱ$ISPNFʹΑͬͯΩϟογϡ͞Ε ͯ࣍ճҎ߱ߴͰىಈ͢Δ
5PFGpDJFOUDBDIJOH ʠJOTUBOUJBUF4USFBNJOHʡ͔ʠDPNQJMF4USFBNJOHʡΛར༻͢Δඞཁ͕͋ Δ 63-ͱXBTNͷΈ߹ΘͤͰΩϟογϡΛߦ͏ͷͰɺҧ͏63-͔Βϩʔυ ͢ΔͷΛΊΔ
KBWBTDSJQUͱൺͯ
$PEFTJ[F ѹॖ͞Εͨ#ZUFDPEFͳͷͰવKBWBTDSJQUͷιʔείʔυΑΓখ͍͞ ίʔυ༰ʹΑΔ͕
5ZQF'FFECBDL KBWBTDSJQUܕ͕ແ͍ͷͰɺCBTFMJOFͰ༷ʑͳܕʹରԠ͢ΔίʔυΛग़ྗ ͦͷޙऩू͞Εͨܕใ͔ΒมͷܕΛ༧ͯ͠+*5Λग़ྗ͢Δ 8"4.੩తܕ͚ͳͷͰɺͦͷաఔΛܦΔඞཁ͕ແ͍
4UBUJD0QUJNJ[BUJPO 8"4.ଟ͘ͷ߹ɺίϯύΠϥ͔Βग़ྗ͞ΕΔͨΊɺίϯύΠϥͷόοΫ Τϯυ͕੩తͳ࠷దԽΛࢪ͢͜ͱ͕Ͱ͖Δ +*5ͷλΠϛϯάͰߦ͏࠷దԽ࣌ؒΛ͔͚ΒΕͳ͍ͨΊɺߦ͑Δ࠷దԽ͕ ݶΒΕΔ
($ 8"4.ʹ($͕ແ͍ͷͰߴͳׂ͕Մೳ 8"4.ͷϝϞϦ+4ͷ"SSBZ#VGGFS͔ΒׂΓͯΒΕ͍ͯΔ͕ɺׂͷλΠ ϛϯάͰ0MEεϖʔεʹׂΓͯΔͷͰ+4ͷ($ͷରʹͳΓͮΒ͍
ؾʹͳΔ 8"4.͔ͳΓMPXMFWFMͳ#ZUFDPEFͳͷͰɺ+7.ͷΑ͏ͳલఏ݅Λͨ ͤΒΕͣɺΤϯδϯଆͰͰ͖Δ࠷దԽ͕͔ͳΓݶΒΕͯ͘Δ ࣄલͷ࠷దԽ͕ඇৗʹॏཁʹͳͬͯ͠·͍ɺ͏ίϯύΠϥʹੑೳ͕େ͖͘ ґଘͦ͠͏
·ͱΊ Γ8"4.ͱͯίϯύΠϥϑϨϯυϦʔ KBWBTDSJQUͷ࠷దԽύε͔ͳΓෳࡶʹݟ͑Δ