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
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
yamanao
April 12, 2026
Programming
550
0
Share
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
20
念願の初参加! RubyKaigiで鯛験したこと
nakiym
0
760
私のENECHANGEでのインターンシップと今後
nakiym
0
580
Other Decks in Programming
See All in Programming
タクシーアプリ『GO』の バックエンド開発のおける AI利活用と若者のすべて
pyama86
3
1.6k
サークル参加から学ぶ、小さな事業の回し方
yuzneri
0
230
ReactとSvelteのその先、Ripple-TS / Beyond React and Svelte: Ripple-TS
ssssota
3
790
AlarmKitで明後日起きれるアラームアプリを作る
trickart
0
150
Why Laravel apps break—Mastering the fundamentals to keep them maintainable
kentaroutakeda
1
180
AgentCore Optimizationを始めよう!
licux
4
280
継続的な負荷検証を目指して
pyama86
3
1.5k
TypeScriptだけでAIエージェントを作る フロント・エージェント・インフラのフルスタック実践
har1101
6
990
過去のレビュー知見をSkillsで資産化した話
pkshadeck
PRO
1
2.3k
GitHub Copilot CLIのいいところ
htkym
2
1k
自動レビューエンジンの実装と運用 ~レビューのない世界へ~
kurukuru1999
2
250
開発とはなにか、Essenceカーネルで見えるもの
ukin0k0
0
210
Featured
See All Featured
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
920
The Cost Of JavaScript in 2023
addyosmani
55
9.9k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
360
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
How STYLIGHT went responsive
nonsquared
100
6.1k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
220
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
230
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
530
The Pragmatic Product Professional
lauravandoore
37
7.3k
Docker and Python
trallard
47
3.8k
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ͷதؒදݱ
͓·͚
˒ εʔπέʔεҎ্ۭͷঢ়ଶͰ ˒ ϊϕϧςΟͰຒ·Δ ˒ ࡢεʔπέʔε͕ຒ·্ͬͨͰ ख࣋ͪͨ͠ ͓·͚