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
0
220
RubyKaigi Decks
RubyKaigi 2024事後勉強会(SmartHR主催)
https://smarthr.connpass.com/event/319010/
公開用に調整を加えたバージョンです。
osyoyu
May 31, 2024
Tweet
Share
More Decks by osyoyu
See All by osyoyu
もうちょっといいRubyプロファイラを作りたい (2025)
osyoyu
1
750
Profile and benchmark every change - RubyKaigi 2025
osyoyu
0
120
Regional.rb and the Tokyo Metropolis
osyoyu
0
260
都市伝説バスターズ「WebアプリのボトルネックはDBだから言語の性能は関係ない」 - Kaigi on Rails 2024
osyoyu
29
19k
プロファイラ開発者と見る「推測するな、計測せよ」 - YAPC::Hakodate 2024
osyoyu
7
960
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.7k
今年のRubyKaigiはProfiler Year🤘
osyoyu
0
1.6k
Other Decks in Programming
See All in Programming
Codex CLI でつくる、Issue から merge までの開発フロー
amata1219
0
240
最初からAWS CDKで技術検証してもいいんじゃない?
akihisaikeda
4
180
Claude Codeログ基盤の構築
giginet
PRO
7
3.8k
Claude Code Skill入門
mayahoney
0
450
Geminiをパートナーに神社DXシステムを個人開発した話(いなめぐDX 開発振り返り)
fujiba
0
120
AWS×クラウドネイティブソフトウェア設計 / AWS x Cloud-Native Software Design
nrslib
16
3.4k
Nuxt Server Components
wattanx
0
210
CS教育のDX AIによる育成の効率化
niftycorp
PRO
0
170
Strategy for Finding a Problem for OSS: With Real Examples
kibitan
0
120
飯MCP
yusukebe
0
410
Rethinking API Platform Filters
vinceamstoutz
0
3.7k
今からFlash開発できるわけないじゃん、ムリムリ! (※ムリじゃなかった!?)
arkw
0
170
Featured
See All Featured
Bash Introduction
62gerente
615
210k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.1k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
120
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.2k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Are puppies a ranking factor?
jonoalderson
1
3.2k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
10k
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
Music & Morning Musume
bryan
47
7.1k
Heart Work Chapter 1 - Part 1
lfama
PRO
5
35k
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
͖ͯ͘Εͯ͋Γ͕ͱ͏ʂ ϑΟʔυόοΫ͋Γ͕ͱ͏͍͟͝·͢