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
RubyKaigi Decks
Search
osyoyu
May 31, 2024
Programming
220
0
Share
RubyKaigi Decks
RubyKaigi 2024事後勉強会(SmartHR主催)
https://smarthr.connpass.com/event/319010/
公開用に調整を加えたバージョンです。
osyoyu
May 31, 2024
More Decks by osyoyu
See All by osyoyu
もうちょっといいRubyプロファイラを作りたい (2025)
osyoyu
1
780
Profile and benchmark every change - RubyKaigi 2025
osyoyu
0
140
Regional.rb and the Tokyo Metropolis
osyoyu
0
270
都市伝説バスターズ「WebアプリのボトルネックはDBだから言語の性能は関係ない」 - Kaigi on Rails 2024
osyoyu
29
19k
プロファイラ開発者と見る「推測するな、計測せよ」 - YAPC::Hakodate 2024
osyoyu
7
970
ZigでC拡張を作る 2024 Edition
osyoyu
1
130
Rubyのパフォーマンスプロファイリングの改善 / Enhancing performance profiling for Ruby
osyoyu
2
1.1k
The depths of profiling Ruby - RubyKaigi 2024
osyoyu
3
7.9k
今年のRubyKaigiはProfiler Year🤘
osyoyu
0
1.7k
Other Decks in Programming
See All in Programming
Don't Prompt Harder, Structure Better
kitasuke
0
750
Alternatives to JPA 2026
debop
0
110
アーキテクチャモダナイゼーションとは何か
nwiizo
17
5.1k
SkillがSkillを生む:QA観点出しを自動化した
sontixyou
6
3.4k
「話せることがない」を乗り越える 〜日常業務から登壇テーマをつくる思考法〜
shoheimitani
4
780
Running Swift without an OS
kishikawakatsumi
0
830
Claude Code × Gemini × Ebitengine ゲーム制作素人WebエンジニアがGoでゲームを作った話
webzawa
0
120
[RubyKaigi 2026] Require Hooks
palkan
0
120
LM Linkで(非力な!)ノートPCでローカルLLM
seosoft
0
490
ハーネスエンジニアリングにどう向き合うか 〜ルールファイルを超えて開発プロセスを設計する〜 / How to approach harness engineering
rkaga
22
12k
AIエージェントで業務改善してみた
taku271
0
520
SREに優しいTerraform構成 modulesとstateの組み方
hiyanger
1
110
Featured
See All Featured
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
680
Test your architecture with Archunit
thirion
1
2.2k
Producing Creativity
orderedlist
PRO
348
40k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1k
Making the Leap to Tech Lead
cromwellryan
135
9.8k
The Limits of Empathy - UXLibs8
cassininazir
1
300
How STYLIGHT went responsive
nonsquared
100
6.1k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
23k
Rails Girls Zürich Keynote
gr2m
96
14k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.6k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
1
520
Transcript
🙋
RubyKaigi Speaker ͋Δ͋Δ
RubyKaigi Speaker ͋Δ͋Δ • ͍͑ͨ͜ͱ͕ଟ͗͢Δ • ΘΔΑ͏ʹͨ͠Β͍͑ͨ͜ͱ͕ ΘΒͳͦ͞͏ • εϥΠυ͕·ͱ·Βͳ͍
• ϓϨΠϕϯτͰෲͷ୳Γ߹͍Λ͢Δ • ձͰमਖ਼ͯ͠Δ
RubyKaigi Speaker ͋Δ͋Δ • ͍͑ͨ͜ͱ͕ଟ͗͢Δ • ΘΔΑ͏ʹͨ͠Β͍͑ͨ͜ͱ͕ ΘΒͳͦ͞͏ͰΉ • εϥΠυ͕·ͱ·Βͳ͍
• ϓϨΠϕϯτͰෲͷ୳Γ߹͍Λ͢Δ • ձͰमਖ਼ͯ͠Δ
RubyKaigi Speaker ͋Δ͋Δ • ͍͑ͨ͜ͱ͕ଟ͗͢Δ • ΘΔΑ͏ʹͨ͠Β͍͑ͨ͜ͱ͕ ΘΒͳͦ͞͏ͰΉ • εϥΠυ͕·ͱ·Βͳ͍
• ϓϨΠϕϯτͰෲͷ୳Γ߹͍Λ͢Δ • ձͰमਖ਼ͯ͠Δ
RubyKaigi Speaker ͋Δ͋Δ • ͍͑ͨ͜ͱ͕ଟ͗͢Δ • ΘΔΑ͏ʹͨ͠Β͍͑ͨ͜ͱ͕ ΘΒͳͦ͞͏ͰΉ • εϥΠυ͕·ͱ·Βͳ͍
• ϓϨΠϕϯτͰਐḿͷ୳Γ߹͍Λ͢Δ • ձͰमਖ਼ͯ͠Δ
RubyKaigi Speaker ͋Δ͋Δ • ͍͑ͨ͜ͱ͕ଟ͗͢Δ • ΘΔΑ͏ʹͨ͠Β͍͑ͨ͜ͱ͕ ΘΒͳͦ͞͏ͰΉ • εϥΠυ͕·ͱ·Βͳ͍
• ϓϨΠϕϯτͰਐḿͷ୳Γ߹͍Λ͢Δ • ʹཁૉͨ͘͠ͳΓ͕ͪ
None
RubyKaigi Speaker ͋Δ͋Δ
RubyKaigi Speaker ͋Δ͋Δ • ͜͏͍͏ΠϕϯτͰಛผѻ͍͞Εͯ ͪΐͬͱVIPؾ
None
@osyoyu | 2024/5/31 RubyKaigiࣄޙษڧձ @ SmartHR RubyKaigi Decks
@osyoyu | 2024/5/31 RubyKaigiࣄޙษڧձ @ SmartHR RubyKaigi Slide Decks RubyKaigi
εϥΠυ͋Δ͋Δ
pp self Daisuke Aritomo (@osyoyu)
#osyoyuϓϩϑΝΠϥେ͖
github.com/osyoyu/pf2
None
Speakers RubyKaigi Designers
#ࢥ͍ग़͕ࢭ·Βͳ͍
None
None
None
None
None
None
None
None
None
while (kaigi->running) { if (poll_current_place() != 1) { do_jinrouda(); }
}
None
ਓ࿑ଧ߈ུ • ը໘Λ֦͘͢͝େͯ͠ϓϨΠ͢Δ • ࣈΛಡΉ • ࣈͷಡΈશ෦֮͑Δ • ʮʯ→ʮͱ͏ʯɺʮआೖʯ→ʮ͔Γ͍Εʯ •
ߴྸऀؔͷϫʔυ͍͕ͪ͠ • ʮߴྸܧଓڅۚʯखʹ֮͑ͤ͞Α͏ • ʮ70ࡀҎ্ඃ༻ऀʯ͜͜Ҏ֎Ͱݟͨ͜ͱͳ͍
None
None
class Word def initialize(str, hiragana) @str = str @hiragana =
hiragana end def score @hiragana.length * 50 end end
class Word def initialize(str, hiragana) @str = str @hiragana =
hiragana end def score @hiragana.length * 50 end end
Type Read Type Read Type Read Read Type
jinrouda() loop solve_problem() ޠͷઌ಄ΛಡΉ() type()
None
What were we talking about...? Կͷ͚ͩͬʁ
ʢߴͰεϥΠυΛר͖͢ʣ
@osyoyu | 2024/5/31 RubyKaigiࣄޙษڧձ @ SmartHR RubyKaigi Slide Decks RubyKaigi
εϥΠυ͋Δ͋Δ
RubyKaigi Speaker ͋Δ͋Δ • ͍͑ͨ͜ͱ͕ଟ͗͢Δ • ΘΔΑ͏ʹͨ͠Β͍͑ͨ͜ͱ͕ ΘΒͳͦ͞͏ͰΉ • εϥΠυ͕·ͱ·Βͳ͍
• ϓϨΠϕϯτͰਐḿͷ୳Γ߹͍Λ͢Δ • ձͰमਖ਼ͯ͠Δ
RubyKaigi Speaker ͋Δ͋Δ • ͍͑ͨ͜ͱ͕ଟ͗͢Δ • ΘΔΑ͏ʹͨ͠Β͍͑ͨ͜ͱ͕ ΘΒͳͦ͞͏ͰΉ • εϥΠυ͕·ͱ·Βͳ͍
• ϓϨΠϕϯτͰਐḿͷ୳Γ߹͍Λ͢Δ • ձͰमਖ਼ͯ͠Δ 3BCCJUͷ͏͗͞ͱΧϝ͕͍͕ͪ
RubyKaigi Speaker ͋Δ͋Δ • ͜͏͍͏ΠϕϯτͰಛผѻ͍͞Εͯ ͪΐͬͱVIPؾ
None
rubykaigi.org ͷεΫγϣషΓ͕ͪ
pp self Daisuke Aritomo (@osyoyu)
pp self Daisuke Aritomo (@osyoyu) ࣗݾհͪΐͬͱޙճ͕ͪ͠
pp self Daisuke Aritomo (@osyoyu) ࣗݾհεϥΠυͷλΠτϧ pp self ʹ͕ͪ͠ (pp
@osyoyu ͍Δ)
github.com/osyoyu/pf2
github.com/osyoyu/pf2 ͜͏͍͏ײ͡Ͱ ࣗຫ͍ͨ͠ϦϙδτϦషΓ͕ͪ
Speakers RubyKaigi Designers
Speakers RubyKaigi Designers ձ͔ࣾΒདྷͯΔਓͷ ΞΠίϯ͍ͬͺ͍ࡌ͕ͤͪ
None
while (kaigi->running) { if (poll_current_place() != 1) { do_jinrouda(); }
}
while (kaigi->running) { if (poll_current_place() != 1) { do_jinrouda(); }
} ͍͖ͳΓ C ͷίʔυ ొ͕ͪ͠
ਓ࿑ଧ߈ུ • ը໘Λ֦͘͢͝େͯ͠ϓϨΠ͢Δ • ࣈΛಡΉ • ࣈͷಡΈશ෦֮͑Δ • ʮʯ→ʮͱ͏ʯɺʮआೖʯ→ʮ͔Γ͍Εʯ •
ߴྸऀؔͷϫʔυ͍͕ͪ͠ • ʮߴྸܧଓڅۚʯखʹ֮͑ͤ͞Α͏ • ʮ70ࡀҎ্ඃ༻ऀʯ͜͜Ҏ֎Ͱݟͨ͜ͱͳ͍
ਓ࿑ଧ߈ུ • ը໘Λ֦͘͢͝େͯ͠ϓϨΠ͢Δ • ࣈΛಡΉ • ࣈͷಡΈશ෦֮͑Δ • ʮʯ→ʮͱ͏ʯɺʮआೖʯ→ʮ͔Γ͍Εʯ •
ߴྸऀؔͷϫʔυ͍͕ͪ͠ • ʮߴྸܧଓڅۚʯखʹ֮͑ͤ͞Α͏ • ʮ70ࡀҎ্ඃ༻ऀʯ͜͜Ҏ֎Ͱݟͨ͜ͱͳ͍ ݁ہ͏·͘ཧͰ͖ͳͯ͘ จࣈͩΒ͚ͷεϥΠυͰ͖͕ͪ
class Word def initialize(str, hiragana) @str = str @hiragana =
hiragana end def score @hiragana.length * 50 end end
class Word def initialize(str, hiragana) @str = str @hiragana =
hiragana end def score @hiragana.length * 50 end end ͜͏͍͏ײ͡ͰίʔυΛషΔͱ ͔͍͍ͬ͜
Type Read Type Read Type Read Read Type
Type Read Type Read Type Read Read Type Thread ͱ
GVL ਤղ͕ͪ͠
jinrouda() loop solve_problem() init_nounai_stack() type()
jinrouda() loop solve_problem() init_nounai_stack() type() Flamegraph ҙ֎ͱొ͕ͪ͠
What were we talking about...? Կͷ͚ͩͬʁ ӳޠεϥΠυͰຊޠ͋Δ͜ͱ͋Γ͕ͪ
66
࣌ؒͷΘΓʹ εϥΠυຕଟ͕͗ͪ͢ 95
None
͖ͯ͘Εͯ͋Γ͕ͱ͏ʂ ϑΟʔυόοΫ͋Γ͕ͱ͏͍͟͝·͢