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
160
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
780
将棋盤を画像認識したかった
naoys
0
1.5k
Rust で乗り換え案内
naoys
0
620
疎行列と Jaccard 類似度の高速計算
naoys
1
620
有理数集合の濃度
naoys
2
130
YARVの最適化について調べた
naoys
0
130
転職会議サービスのAWS移行記録
naoys
0
66
Anonymous Recursion in C++
naoys
0
420
入門AlphaGo
naoys
5
3.8k
Other Decks in Programming
See All in Programming
オホーツクでコミュニティを立ち上げた理由―地方出身プログラマの挑戦 / TechRAMEN 2025 Conference
lemonade_37
2
460
Bedrock AgentCore ObservabilityによるAIエージェントの運用
licux
9
600
Comparing decimals in Swift Testing
417_72ki
0
170
バイブコーディングの正体——AIエージェントはソフトウェア開発を変えるか?
stakaya
5
850
物語を動かす行動"量" #エンジニアニメ
konifar
14
4.2k
Claude Code と OpenAI o3 で メタデータ情報を作る
laket
0
110
コーディングは技術者(エンジニア)の嗜みでして / Learning the System Development Mindset from Rock Lady
mackey0225
2
330
ZeroETLで始めるDynamoDBとS3の連携
afooooil
0
160
SwiftでMCPサーバーを作ろう!
giginet
PRO
2
230
可変性を制する設計: 構造と振る舞いから考える概念モデリングとその実装
a_suenami
10
1.7k
Nuances on Kubernetes - RubyConf Taiwan 2025
envek
0
140
新しいモバイルアプリ勉強会(仮)について
uetyo
1
250
Featured
See All Featured
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Stop Working from a Prison Cell
hatefulcrawdad
271
21k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
44
2.4k
Six Lessons from altMBA
skipperchong
28
3.9k
Become a Pro
speakerdeck
PRO
29
5.5k
Visualization
eitanlees
146
16k
Gamification - CAS2011
davidbonilla
81
5.4k
Thoughts on Productivity
jonyablonski
69
4.8k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.8k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
110
19k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
8
760
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.8k
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͕ೖΔ