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

Node8.3.0について

 Node8.3.0について

buildersconの飛び込みLT資料。

以下の記事のスライド版です。
http://abouthiroppy.hatenablog.jp/entry/2017/08/03/095304

7496c69c781c91d16637ea6102311e26?s=128

Yuta Hiroto

August 04, 2017
Tweet

Transcript

  1. Node8.3.0ʹ͍ͭͯ Yuta Hiroto(@about_hiroppy) ඈͼࠐΈLT(5min) 

  2. Me Twitter: about_hiroppy
 GitHub: abouthiroppy ኍށ ༟େ 

  3. ݱࡏͷNodeͷঢ়گ • current(master) - v9.0.0-pre • latest - v8.2.1 •

    Current Proposal - v8.3.0 • LTS(Long Term Support) • Boron - v4.8.4 (status: Maintenance) • Argon - v6.11.2 (status: Active) • Carbon - v8.x (status: Pending(2017/10 ~)) 
  4. v8.3.0 proposalͷେ͖ͳมߋ • V8ͷv6.0΁ΞοϓάϨʔυ • ͜ΕʹΑΓɺύϑΥʔϚϯεϓϩϑΝΠϧ
 ͕େ෯ʹมߋ͞ΕΔ • WHATWG Encoding

    Standard 
 (TextDecoderͱTextEncoder)͕࣮૷͞Εͨ https://github.com/nodejs/node/pull/14594 
  5. v8.3.0 proposalͷେ͖ͳมߋ • V8ͷv6.0΁ΞοϓάϨʔυ • ͜ΕʹΑΓɺύϑΥʔϚϯεϓϩϑΝΠϧ
 ͕େ෯ʹมߋ͞ΕΔ • WHATWG Encoding

    Standard 
 (TextDecoderͱTextEncoder)͕࣮૷͞Εͨ https://github.com/nodejs/node/pull/14594 
  6. TurboFan + Ignition
 ͕σϑΥϧτͱͳΔʂ 

  7. NodeͱV8 • V8ͷv5.9͔ΒσϑΥϧτͱͳΔ
 TurboFanͱIgnitionͱ͍͏ͷ͕͋Γ·͢ • NodeͰॳΊͯσϑΥϧτʹͳΔͷ͕
 ࠓճͷมߋͱͳΓ·͢ • v5.9͸NodeͷϦϦʔεϥΠϯʹೖ͓ͬͯΒͣɺ
 v6.0͔ΒೖΔ͔ΒͰ͢

    
  8. TurboFan + Ignition • TurboFan • JIT CompilerͰCrankshaft͔Βஔ͖׵ΘΔ΋ͷͰ͢ • ES2015Ͱͷ࠷దԽࠔ೉ͳ෦෼΍try-catchͷ࠷దԽͳͲ͕ՄೳͱͳΓ·͢

    • chrome 41͔Βஈ֊తʹ࢖༻͞Εͯ·ͨ͠ • Ignition • Register machine • ϞόΠϧ୺຤ͷϝϞϦফඅ࡟ݮΛ໨ඪͱͯ͠࡞ΒΕͨΠϯλϓϦλ • JSͷίʔυΛbytecodeʹ͠·͢ 
  9. V8ͷ࣮ߦϑϩʔ  https://docs.google.com/presentation/d/1OqjVqRhtwlKeKfvMdX6HaCIu9wpZsrzqpIVIwQSuiXQ/edit#slide=id.g1357e6d1a4_0_58

  10. ϕϯνϚʔΫ 

  11. Node Core • Internal Modules(V8 v5.9) • buffers
 events
 http

    ()
 querystring
 streams
 string_decoder
 url
 util  v5.9Ͱ͸ओʹࠨͷϞδϡʔϧͷ
 ϕϯνϚʔΫ͕v5.8
 ΑΓԼ͕ͬͯ͠·ͬͨ 
 ͔͠͠ɺv6.0/6.1ͰTurboFan
 ͷଟ͘ͷ໰୊఺͕վળ͞ΕͨͷͰ
 ࠓޙ͸΋ͬͱྑ͘ͳΔ
  12. node benchmark.js 390.80s cpu 8:16.27 total webpack  v8.2.1
 (V8

    v5.8) v8.3.0
 (V8 v6.0) node benchmark.js 385.03s cpu 7:47.66 total
  13. Loading: Load Performance median: 147.627503ms Single File: CPU Speed is

    3100 with multiplier 13000000 Performance budget exceeded: 5423.646407ms (limit: 4193.548387096775ms) Multi Files (0 files): CPU Speed is 3100 with multiplier 39000000 Performance budget exceeded: 13073.789987ms (limit: 12580.645161290322ms) ESLint  Loading: Load Performance median: 141.143209ms Single File: CPU Speed is 3100 with multiplier 13000000 Performance budget exceeded: 5300.968599ms (limit: 4193.548387096775ms) Multi Files (0 files): CPU Speed is 3100 with multiplier 39000000 Performance budget exceeded:13120.178363ms (limit: 12580.645161290322ms) v8.2.1
 (V8 v5.8) v8.3.0
 (V8 v6.0)
  14. ϕϯνϚʔΫʹؔͯ͠ • جຊతʹվળ͞Ε͍ͯΔ(v8.2.1͔Βv8.3.0) • NodeͷInternal modulesͰ͸
 100%Ҏ্ͷվળ΋͋Ε͹ɺѱԽ΋͋Δ 

  15. ·ͱΊ • 8݄தʹ8.3.0͕ϦϦʔε͞Ε·͢ • NodeͷV8͕v6.0΁ΞοϓάϨʔυ͞ΕΔ
 5.8 → 6.0 • WHATWG

    Encoding Standard͕ೖΔ • ࠓޙɺNode, Chrome͸ߋʹ଎͘ͳΔ 
  16. ͜ͷLTͷهࣄ  Node8.3.0ͰσϑΥϧτʹͳΔTF/IʹؔΘΔ
 ϕϯνϚʔΫʹ͍ͭͯ http://abouthiroppy.hatenablog.jp/entry/2017/08/03/095304

  17. ౦ژNodeֶԂࡇ2017  CFPͷక੾͕8݄ͷ15೔ͳͷͰ ൃද͍ͨ͠ํ͸ͥͻԠื͍ͯͩ͘͠͞ʂʂʂ

  18. Thanks!