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
190
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
RubyとJIT
na-o-ys
January 31, 2018
More Decks by na-o-ys
See All by na-o-ys
IoTと監視
naoys
1
840
将棋盤を画像認識したかった
naoys
0
1.6k
Rust で乗り換え案内
naoys
0
650
疎行列と Jaccard 類似度の高速計算
naoys
1
680
有理数集合の濃度
naoys
2
160
YARVの最適化について調べた
naoys
0
160
転職会議サービスのAWS移行記録
naoys
0
92
Anonymous Recursion in C++
naoys
0
450
入門AlphaGo
naoys
5
3.8k
Other Decks in Programming
See All in Programming
30年振りにコンパイラの定数整数除算を改善した
herumi
9
4.4k
【デモ】Kiroで体験する仕様駆動開発|設計からコーディングまでAIと進める開発フロー
cmkudo
0
570
リアルな遅延を測る仕様
kota_yata
1
140
tsc.rip を支える技術 / Kyoto.なんか #8
susisu
0
4.3k
Hono + Inertia + React で LP を構築した話
oukayuka
2
210
Foundry Localでエージェント開発
seosoft
0
130
AI時代に学ぶ 好きなルール 嫌いなルール Linter編
shorty5121
0
840
Discordを用いたラボオートメーション関連情報収集の自動化
noguhiro2002
0
500
AI に Inclusive UI を書かせよう — Design Rules Skill で Compose UI を作り直す
theoriatec2024
1
440
思考垂れ流し開発 ~音声入力 × AIエージェント × 開発ハーネスによる試行錯誤~
npostring
0
810
Swift愛好会と私(ウホーイ) / Swift Fan Club and Uhooi
uhooi
0
130
高専キャリア LT 発表内容
crysta1221
6
5.5k
Featured
See All Featured
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
380
Fireside Chat
paigeccino
42
4k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
490
Agile that works and the tools we love
rasmusluckow
331
22k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
56
3.5k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.7k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
Amusing Abliteration
ianozsvald
1
290
Documentation Writing (for coders)
carmenintech
77
5.5k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
Building the Perfect Custom Keyboard
takai
2
860
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.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͕ೖΔ