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
RubyとJIT
Search
na-o-ys
January 31, 2018
Programming
0
150
RubyとJIT
na-o-ys
January 31, 2018
Tweet
Share
More Decks by na-o-ys
See All by na-o-ys
IoTと監視
naoys
1
750
将棋盤を画像認識したかった
naoys
0
1.5k
Rust で乗り換え案内
naoys
0
610
疎行列と Jaccard 類似度の高速計算
naoys
1
580
有理数集合の濃度
naoys
2
110
YARVの最適化について調べた
naoys
0
120
転職会議サービスのAWS移行記録
naoys
0
55
Anonymous Recursion in C++
naoys
0
400
入門AlphaGo
naoys
5
3.7k
Other Decks in Programming
See All in Programming
Boos Performance and Developer Productivity with Jakarta EE 11
ivargrimstad
0
650
Drawing Heighway’s Dragon- Recursive Function Rewrite- From Imperative Style in Pascal 64 To Functional Style in Scala 3
philipschwarz
PRO
0
160
オレを救った Cline を紹介する
codehex
15
14k
もう僕は OpenAPI を書きたくない
sgash708
6
1.9k
From the Wild into the Clouds - Laravel Meetup Talk
neverything
0
190
ABEMA iOS 大規模プロジェクトにおける段階的な技術刷新 / ABEMA iOS Technology Upgrade
akkyie
1
250
Amazon Bedrockマルチエージェントコラボレーションを諦めてLangGraphに入門してみた
akihisaikeda
1
160
Generating OpenAPI schema from serializers throughout the Rails stack - Kyobashi.rb #5
envek
1
430
Jasprが凄い話
hyshu
0
190
⚪⚪の⚪⚪をSwiftUIで再現す る
u503
0
130
The Price of Micro Frontends… and Your Alternatives @bastacon 2025 in Frankfurt
manfredsteyer
PRO
0
100
Visual StudioのGitHub Copilotでいろいろやってみる
tomokusaba
1
220
Featured
See All Featured
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Building Your Own Lightsaber
phodgson
104
6.2k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.2k
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
RailsConf 2023
tenderlove
29
1k
For a Future-Friendly Web
brad_frost
176
9.6k
Fontdeck: Realign not Redesign
paulrobertlloyd
83
5.4k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
40
2k
Navigating Team Friction
lara
183
15k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Agile that works and the tools we love
rasmusluckow
328
21k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
366
25k
Transcript
Ruby, YARV, ͦͯ͠JIT 2018/01/29 @na_o_ys
࣌ḪΓ
Ruby 3x3 @RubyKaigi 2015 https://www.youtube.com/watch?v=E9bO1uqs4Oc
Evan Phoenix ʮJITͨ͠Β?ʯ @RubyKaigi 2015 • Evan Phoenix • Rubinius
ͷ࡞ऀ • Rubinius Ͱ LLVM Λར༻ͨ͠ JIT Λ࣮ࡁ Έͩͬͨ
ͦͯ͠ 2 ޙ, 2018/1ݱࡏ
͍͔ͭ͘ͷ JIT ϓϩδΣΫτ • MJIT • Vladimir Makarovࢯ • YARVΛ٫͠,
ϨδελϕʔεVMʹ • CίʔυΛಈతੜ͠, ࠷దԽ, ίϯύΠϧ • YARV-MJIT • k0kubunࢯ • YARV(ελοΫϕʔεVM)ͷ··, MJITͷJITػߏΛಋೖ
YARVͱ (͓͞Β͍) • Ruby 1.9.0 Ͱ࠾༻͞ΕͨRubyॲཧܥ • ߴԽΛୡ • https://speakerdeck.com/naoys/yarvfalsezui-
shi-hua-nituitediao-beta
MJIT
MJIT (1/2) • https://github.com/vnmakarov/ruby/tree/rtl_mjit_branch • YARV٫ • ελοΫϕʔεVMͷYARVΛࣺͯ, ϨδελϕʔεVMΛߏங •
Method JIT • ϝιου୯ҐͰͷJITίϯύΠϧ • CίʔυΛಈతੜ͠, ࠷దԽ & ίϯύΠϧ͢Δ
MJIT (2/2) • ͳͥϨδελϕʔεVM͔? • ୈҰʹ, ίʔυղੳͱ࠷దԽΛߦ͏ͨΊ • ελοΫϕʔε͜Εʹద͞ͳ͍ •
ୈೋʹ, ॲཧͷߴԽͷͨΊ • ελοΫϕʔεϝϞϦͷແବͳར༻͕ଟ͍ • ελοΫϕʔε໋ྩߦ͕ଟ͘ͳΔ
MJITͷਐḿ • RubyKaigi 2017 (2017/10) • http://gihyo.jp/news/report/01/rubykaigi2017/0003? page=2 • TL;DR
• Ruby 2 ͱൺ͔ͯͳΓͷߴԽ (ᐆດ) Λୡ • ʮ࣮ͱͯ͠ख़͢Δʹ͋ͱ1΄΅͔͔ΔͩΖ͏ʯ
YARV-MJIT
YARV-MJIT • MJITͷJITػߏͷҰ෦͚ͩΛಋೖ͢Δ • YARV͍ଓ͚Δ • ͶΒ͍ • 1. ϨδελϕʔεͷϝϦοτΛ໌֬Խ
• ελοΫϕʔεͩͱ࣮ࡍͲΕ͘Β͍͍ɾਏ͍ʁ • 2. MJITͷҠߦΛεϜʔζʹ͢Δ • JIT͕ೖΔλΠϛϯάͰ͍͖ͳΓYARV -> ϨδελϕʔεVMͷϦϓϨʔε ͕͓͖Δͷා͘ͳ͍ʁ
YARV-MJITͷਐḿ • https://github.com/ruby/ruby/pull/1782 • https://bugs.ruby-lang.org/issues/14235 • TL;DR • Ruby 2.6
Ͱग़͍ͨ͠ • -j, —jit ΦϓγϣϯͰ༗ޮɾແޮΓସ͑ΒΕΔ
·ͱΊ • RubyʹJIT͕ೖΔʂ • ͍·ͷͱ͜Ζͷະདྷ༧ਤ • ·ͣ͡Ίʹ, YARVΛҡ࣋ͨ͠··ͰJIT͕ೖΔ • Ruby
2.6 ʹͰʁ • ͍ͦͯۙ͠কདྷ, YARV͕Ϩδελϕʔεʹஔ͖͑ΒΕͨ ΑΓ͍JIT͕ೖΔ