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
120
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
Regional.rb and the Tokyo Metropolis
osyoyu
0
140
都市伝説バスターズ「WebアプリのボトルネックはDBだから言語の性能は関係ない」 - Kaigi on Rails 2024
osyoyu
28
16k
プロファイラ開発者と見る「推測するな、計測せよ」 - YAPC::Hakodate 2024
osyoyu
7
790
ZigでC拡張を作る 2024 Edition
osyoyu
1
73
Rubyのパフォーマンスプロファイリングの改善 / Enhancing performance profiling for Ruby
osyoyu
2
880
The depths of profiling Ruby - RubyKaigi 2024
osyoyu
3
6.3k
今年のRubyKaigiはProfiler Year🤘
osyoyu
0
1.3k
令和最新版 Ruby プロファイラ "Pf2" のご紹介
osyoyu
0
580
ちょっといい感じの Ruby プロファイラがほしい (RubyKaigi 2023 follow up)
osyoyu
1
420
Other Decks in Programming
See All in Programming
Make Parsers Compatible Using Automata Learning
makenowjust
1
5k
Java 24まとめ / Java 24 summary
kishida
3
500
The Implementations of Advanced LR Parser Algorithm
junk0612
1
320
State of Namespace
tagomoris
4
1.7k
小田原でみんなで一句詠みたいな #phpcon_odawara
stefafafan
0
340
Being an ethical software engineer
xgouchet
PRO
0
210
音声プラットフォームのアーキテクチャ変遷から学ぶ、クラウドネイティブなバッチ処理 (20250422_CNDS2025_Batch_Architecture)
thousanda
0
180
The Nature of Complexity in John Ousterhout’s Philosophy of Software Design
philipschwarz
PRO
0
110
Exit 8 for SwiftUI
ojun9
0
130
Vibe Codingをせずに Clineを使っている
watany
17
6.3k
Kamal 2 – Get Out of the Cloud
aleksandrov
1
190
設計の本質:コード、システム、そして組織へ / The Essence of Design: To Code, Systems, and Organizations
nrslib
4
540
Featured
See All Featured
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
52
2.4k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.7k
Reflections from 52 weeks, 52 projects
jeffersonlam
349
20k
Mobile First: as difficult as doing things right
swwweet
223
9.6k
VelocityConf: Rendering Performance Case Studies
addyosmani
328
24k
Practical Orchestrator
shlominoach
186
11k
Done Done
chrislema
183
16k
Building Applications with DynamoDB
mza
94
6.3k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
119
51k
Java REST API Framework Comparison - PWX 2021
mraible
30
8.5k
Writing Fast Ruby
sferik
628
61k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.6k
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
͖ͯ͘Εͯ͋Γ͕ͱ͏ʂ ϑΟʔυόοΫ͋Γ͕ͱ͏͍͟͝·͢