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
YJITとZJITにはイカなる違いがあるのか?
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
yamanao
April 12, 2026
Programming
630
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
YJITとZJITにはイカなる違いがあるのか?
2026-04-10
ルールルルルルRubyKaigi 2026事前勉強会
https://smarthr.connpass.com/event/387103/
yamanao
April 12, 2026
More Decks by yamanao
See All by yamanao
大学生のうちにやっておきたいこと
nakiym
0
28
念願の初参加! RubyKaigiで鯛験したこと
nakiym
0
800
私のENECHANGEでのインターンシップと今後
nakiym
0
590
Other Decks in Programming
See All in Programming
作って学ぶ、 JSX (TSX) ランタイムの基本
syumai
7
1.6k
AIで効率化できた業務・日常
ochtum
0
140
AIとASP.NET Coreで雑Webアプリを作った話
mayuki
0
630
TSKaigi Night Talks 2026_TypeScriptでサプライチェーンの整合性を型に閉じ込める
geekplus_tech
0
350
並列実装の現場、2ヶ月間実務でAIを使い倒したAIもPCも私も限界が近い
ming_ayami
0
130
キャリア迷子上等 ─ "ない道"は自分で作ればいい
16bitidol
3
2.1k
決定論的オーケストレーションの設計と実装 / Design and Implementation of Deterministic Orchestration
nrslib
4
1.4k
TypeScript+Orvalで実現する型安全かつ堅牢でスケーラブルなマルチチャネル通知基盤 / TSKaigi Night talks ~after conference~
d0riven
0
340
Lemonade + Foundry Toolkit でお手軽アプリ開発
seosoft
1
340
Even G2とAWSで推しのエージェントを召喚しよう!
har1101
1
120
LLMによるContent Moderationの本番運用の裏側と品質担保への挑戦
suikabar
3
680
ECSアプリログをFireLensでコスト削減しようとしたけど諦めた話 in Fargate×Node.js
akihisaikeda
2
4.2k
Featured
See All Featured
Everyday Curiosity
cassininazir
0
230
Faster Mobile Websites
deanohume
310
31k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
270
Designing for Timeless Needs
cassininazir
1
260
The SEO identity crisis: Don't let AI make you average
varn
0
490
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
310
Building Adaptive Systems
keathley
44
3.1k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.1k
Prompt Engineering for Job Search
mfonobong
0
340
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
390
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
240
Transcript
͋ͳͨͲͬͪʁ
ςετษڧͰ… ˒ աڈΛೖखͯ͠ରࡦ͢Δ ˒ ࢼݧൣғͷڭՊॻΛಡΉ
ςετษڧͰ… ˒ աڈΛೖखͯ͠ରࡦ͢Δ ˒ YJIT ˒ ࢼݧൣғͷڭՊॻΛಡΉ ˒ ZJIT
YJITͱZJITʹ ΠΧͳΔҧ͍͕͋Δͷ͔ʁ yamano
˒ yamano (@yamanaoRuby) ˒ େֶ 4 ੜ ˒ RubyKaigi
2 ճ About me
˒ ͕ࣗཧղ͍ͯ͠ΔൣғͰ͠·͢ ˒ ݶΒΕͨ࣋ͪ࣌ؒͷதͰɺΠϝʔδ͕ΘΔΑ͏ʹ ˒ RubyKaigi·ͰͷཧղͷҰॿʹ͍͚ͯͨͩ͠Ε ˒ ؾʹͳ͕ͬͨ͋Εੋඇ͝ࢦఠ͍ͩ͘͞ ˒ Ճචमਖ਼ͯ͠هࣄʹ͢ΔͭΓͰ͢
͜ͷLTʹ͍ͭͯ
˒ Just-In-Time ͷུ ˒ ίʔυͰΑ࣮͘ߦ͞ΕΔܦ࿏ΛɺඞཁͳλΠϛϯάͰ ίϯύΠϧ͢Δ ˒ ͦͦRubyΠϯλϓϦλܕͷݴޠ ˒ ίϯύΠϧܕͷ͞Λ෦తʹऔΓೖΕΔ
What’s JIT?
࣮ߦ࣌ͷใΛͱʹɺ Α͘ݱΕΔέʔεʹ߹Θͤͯہॴతʹ࠷దԽ͢Δ $ ruby --yjit hoge.rb ͷΑ͏ͳܗͰݕূͰ͖Δ YJIT
YJIT
YJIT Yʮcount͕IntegerͰདྷΔࣄ͕ଟ͍ͳ…ʯ YʮInteger͕དྷΔલఏͰίϯύΠϧͯ͠ɺ ɹ ߴʹॲཧͰ͖ΔΑ͏ʹ͓ͯ͜͠͏ʂʯ
ϝιου୯ҐͰɺ෦Ͱѻ͍͍͢ܗʹ͔ͯ͠Β ˒ ͷྲྀΕ ˒ ੍ޚϑϩʔ ͳͲͷใΛͱʹ࠷దԽ͢Δ $ ruby --zjit hoge.rb
ͷΑ͏ͳܗͰݕূͰ͖Δ ZJIT
ZJIT
ZJIT ZʮશମΛݟͯΈΑ͏ʯ Zʮ͔ͯ͠͠ɺ ɹ ݁ہ͜Ε count * 200 + 500
Ͱʁʯ ※ΠϝʔδͰ͢
ςετษڧͷͨͱ͑ ˒ YJIT ˒ աڈͰରࡦΛ͢ΔͱϐϯϙΠϯτʹֶश͢ΔͷͰૣ͍ ˒ ZJIT ˒ ڭՊॻΛಡΜͰରࡦΛ͢ΔͱΑΓཧ͞ΕͨࣝʹͳΔ ͲͪΒ͕ྑ͍ͱ͍͏Ͱͳ͘ɺಘҙͳํੑ͕ҧ͏
˒ ZJITͷதؒදݱΛΈͯΈΔ ˒ ΠϯλϓϦλͷΈɾYJITɾZJITͷൺֱ ͳͲΛߦͬͨ ͞ΘͬͯΈͨ
$ ruby --zjit --zjit-dump-hir-init total_price.rb $ ruby --zjit --zjit-dump-hir total_price.rb
˒ ઌఔͷ total_price ؔΛෳճ࣮ߦ͢ΔίʔυͰݕূ ZJITͷதؒදݱ
˒ ࠷దԽલ v34:BasicObject = Send v16, :*, v23 v41:BasicObject =
Send v34, :+, v27 Rubyͷϝιουݺͼग़͠Λ͍ͯ͠Δ ˒ ࠷దԽޙ v50:Fixnum = FixnumMult v49, v23 v53:Fixnum = FixnumAdd v50, v27 ΑΓ۩ମతͳԋࢉͷܗʹͳ͍ͬͯΔ ZJITͷதؒදݱ
͓·͚
˒ εʔπέʔεҎ্ۭͷঢ়ଶͰ ˒ ϊϕϧςΟͰຒ·Δ ˒ ࡢεʔπέʔε͕ຒ·্ͬͨͰ ख࣋ͪͨ͠ ͓·͚