Slide 1

Slide 1 text

Haochen Kotoi-Xie on 2024-01-27 (bd04w6) Hermes EngineͷνΧϥΛ ͦͷ਎ͰײͥΑ͏! @NGK2024S

Slide 2

Slide 2 text

Τϧϝεͷ࿩͠Λ͠·͢ Hermès

Slide 3

Slide 3 text

! ʮΤϧϝεʯͱ͍͏ͱ

Slide 4

Slide 4 text

! ʮΤϧϝεʯͱ͍͏ͱ ΦϨϯδͷԿ͔

Slide 5

Slide 5 text

྘ͷ܅!

Slide 6

Slide 6 text

"#$ ΞϯέʔτλΠϜ %%% • ʮJavaScriptʯΛ஌͍ͬͯ·͔͢? • ʮOCamlʯΛ஌͍ͬͯ·͔͢? • ʮECMAScriptʯΛ஌͍ͬͯ·͔͢? What is?

Slide 7

Slide 7 text

Hermes Engine: ECMAScript ͷ࣮ߦ؀ڥ ग़య: https://test262.fyi/ (not by TC39) (2024-01-27࣌఺) What is?

Slide 8

Slide 8 text

React Native ͷͨΊʹ࡞ΒΕͨ

Slide 9

Slide 9 text

ͷͰɺ&͸ Facebook (ݱmeta)

Slide 10

Slide 10 text

ΦϨϯδ vs ϛυϦ ͓஋ஈ ͓৭ ϩΰ(?) ࣮Ոύϫʔ† MKT$ ΦϨϯδ അंతͳԿ͔ 206.57 billion EUR (x1) FREE ϛυϦ ӋతͳԿ͔ 1.01 trillion USD (x4.5) †Market Capج४ (2024-01-27࣌఺) ' ' ⚖ '' '''

Slide 11

Slide 11 text

ΦϨϯδ vs ϛυϦ ͓஋ஈ ͓৭ ϩΰ(?) ࣮Ոύϫʔ† MKT$ ΦϨϯδ അंతͳԿ͔ 206.57 billion EUR (x1) FREE ϛυϦ ӋతͳԿ͔ 1.01 trillion USD (x4.5) †Market Capج४ (2024-01-27࣌఺) ' ' ⚖ '' '''

Slide 12

Slide 12 text

) βɾΤϧϝε

Slide 13

Slide 13 text

Hermes Engine: ECMAScript ͷ࣮ߦ؀ڥ (for React Native) ChakraCore: MS Edge ͷ(ݩ) ECMAScript Τϯδϯ ࢀߟ: V8 / SpiderMonkey / JavaScriptCore: Chrome / Firefox / Safari ͷ ECMAScript Τϯδϯ ͸ͳʹ? ग़య: https://test262.fyi/ (not by TC39) (2024-01-27࣌఺)

Slide 14

Slide 14 text

Source Code: https://github.com/kxcdev/kxc-melange-react-native-template Left: Hermes Engine Right: JavaScriptCore on Google Pixel 6 !!!!! ͸ͱͯ΋଎͍

Slide 15

Slide 15 text

ग़య: https://www.callstack.com/blog/hermes-performance-on-ios Left: Hermes Engine Right: JavaScriptCore on iPhone 12 Mini ͸ͱͯ΋଎͍

Slide 16

Slide 16 text

ग़య: https://www.callstack.com/blog/hermes-performance-on-ios ← ← ← *Stock RN = JavaScriptCore Smaller = Better ͸ͱͯ΋଎͍

Slide 17

Slide 17 text

ग़య: https://www.callstack.com/blog/hermes-performance-on-ios ← ← ← ← *Stock RN = JavaScriptCore Smaller = Better

Slide 18

Slide 18 text

Source Code: https://github.com/kxcdev/kxc-melange-react-native-template Left: Hermes Engine Right: JavaScriptCore on Google Pixel 6 !!!!! ͸ͱͯ΋଎͍

Slide 19

Slide 19 text

ͳͥ଎͍? • AoT (Ahead of Time) ίϯύΠϧ • Source Code ==> Byte Code • Latency over Throughput • Better App Experience • Optimized for React Native • More Specialized == Easier Optimization

Slide 20

Slide 20 text

΋ͬͱ଎͘ͳΔ? ग़య: https://speakerdeck.com/tmikov2023/static-hermes-react-native-eu-2023-announcement

Slide 21

Slide 21 text

΋ͬͱ଎͘ͳΔ? ग़య: https://speakerdeck.com/tmikov2023/static-hermes-react-native-eu-2023-announcement

Slide 22

Slide 22 text

΋ͬͱ଎͘ͳΔ? ग़య: https://speakerdeck.com/tmikov2023/static-hermes-react-native-eu-2023-announcement

Slide 23

Slide 23 text

΋ͬͱૣ͘ͳΔ?? ग़య: https://speakerdeck.com/tmikov2023/static-hermes-react-native-eu-2023-announcement ग़య: https://speakerdeck.com/tmikov2023/static-hermes-react-native-eu-2023-announcement

Slide 24

Slide 24 text

΋ͬͱૣ͘ͳΔ?? ग़య: https://speakerdeck.com/tmikov2023/static-hermes-react-native-eu-2023-announcement ग़య: https://speakerdeck.com/tmikov2023/static-hermes-react-native-eu-2023-announcement

Slide 25

Slide 25 text

΋ͬͱ଎͘ͳΔ?? ग़య: https://github.com/facebook/hermes/discussions/1137

Slide 26

Slide 26 text

΋ͬͱ଎͘ͳΔ?? ग़య: https://github.com/facebook/hermes/discussions/1137 ←ൺֱର৅

Slide 27

Slide 27 text

΋ͬͱ଎͘ͳΔ?? ग़య: https://github.com/facebook/hermes/discussions/1137 ←ൺֱର৅ C → Static Hermes →

Slide 28

Slide 28 text

·ͱΊ • Hermes (ϛυϦ) ଎͍! • C ʹඖఢͨ͠Γ?! • Hermes (ϛυϦ) Λ࢖ͬͯΈ·͠ΐ͏! • ࠷ۙͷ React Native ࢖͑͹ default ͕ Hermes • OCaml ͸͍͍ͥ! • Hermes (ϛυϦ) ͱͷ૬ੑ΋͹ͬͪΓ!