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
190
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
570
Profile and benchmark every change - RubyKaigi 2025
osyoyu
0
68
Regional.rb and the Tokyo Metropolis
osyoyu
0
220
都市伝説バスターズ「WebアプリのボトルネックはDBだから言語の性能は関係ない」 - Kaigi on Rails 2024
osyoyu
29
18k
プロファイラ開発者と見る「推測するな、計測せよ」 - YAPC::Hakodate 2024
osyoyu
7
880
ZigでC拡張を作る 2024 Edition
osyoyu
1
120
Rubyのパフォーマンスプロファイリングの改善 / Enhancing performance profiling for Ruby
osyoyu
2
1k
The depths of profiling Ruby - RubyKaigi 2024
osyoyu
3
7.1k
今年のRubyKaigiはProfiler Year🤘
osyoyu
0
1.5k
Other Decks in Programming
See All in Programming
Amazon ECS Managed Instances が リリースされた!キャッチアップしよう!! / Let's catch up Amazon ECS Managed Instances
cocoeyes02
0
120
ネストしたdata classの面倒な更新にさようなら!Lensを作って理解するArrowのOpticsの世界
shiita0903
1
250
はじめてのDSPy - 言語モデルを『プロンプト』ではなく『プログラミング』するための仕組み
masahiro_nishimi
4
18k
Module Proxyのマニアックな話 / Niche Topics in Module Proxy
kuro_kurorrr
0
1.3k
AkarengaLT vol.38
hashimoto_kei
1
130
ノーコードからの脱出 -地獄のデスロード- / Escape from Base44
keisuke69
0
350
Blazing Fast UI Development with Compose Hot Reload (Bangladesh KUG, October 2025)
zsmb
2
450
SwiftDataを使って10万件のデータを読み書きする
akidon0000
0
250
alien-signals と自作 OSS で実現する フレームワーク非依存な ロジック共通化の探求 / Exploring Framework-Agnostic Logic Sharing with alien-signals and Custom OSS
aoseyuu
3
5.5k
SODA - FACT BOOK(JP)
sodainc
1
9.1k
Register is more than clipboard
satorunooshie
1
360
CSC305 Lecture 14
javiergs
PRO
0
210
Featured
See All Featured
Testing 201, or: Great Expectations
jmmastey
46
7.7k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.3k
A Modern Web Designer's Workflow
chriscoyier
697
190k
Context Engineering - Making Every Token Count
addyosmani
8
330
A Tale of Four Properties
chriscoyier
161
23k
Side Projects
sachag
455
43k
Building a Modern Day E-commerce SEO Strategy
aleyda
44
8k
Practical Orchestrator
shlominoach
190
11k
Building Adaptive Systems
keathley
44
2.8k
Producing Creativity
orderedlist
PRO
348
40k
YesSQL, Process and Tooling at Scale
rocio
174
15k
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
͖ͯ͘Εͯ͋Γ͕ͱ͏ʂ ϑΟʔυόοΫ͋Γ͕ͱ͏͍͟͝·͢