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
250
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
RubyKaigi Decks
RubyKaigi 2024事後勉強会(SmartHR主催)
https://smarthr.connpass.com/event/319010/
公開用に調整を加えたバージョンです。
osyoyu
May 31, 2024
More Decks by osyoyu
See All by osyoyu
Wi-Fiはどこから来たのか Wi-Fiは何者か Wi-Fiはどこへ行くのか
osyoyu
0
600
もうちょっといいRubyプロファイラを作りたい (2025)
osyoyu
1
870
Profile and benchmark every change - RubyKaigi 2025
osyoyu
0
180
Regional.rb and the Tokyo Metropolis
osyoyu
0
290
都市伝説バスターズ「WebアプリのボトルネックはDBだから言語の性能は関係ない」 - Kaigi on Rails 2024
osyoyu
29
19k
プロファイラ開発者と見る「推測するな、計測せよ」 - YAPC::Hakodate 2024
osyoyu
7
1k
ZigでC拡張を作る 2024 Edition
osyoyu
1
150
Rubyのパフォーマンスプロファイリングの改善 / Enhancing performance profiling for Ruby
osyoyu
2
1.2k
The depths of profiling Ruby - RubyKaigi 2024
osyoyu
3
8.4k
Other Decks in Programming
See All in Programming
『コードを書く以外の』エンジニアリング〜課金基盤移行プロジェクト推進のためのTips4選
yuriko1211
0
570
「寝てても仕事が進む」Claude Codeで組む第二の脳
tomoyafujita2016
0
300
言語を使う側から、作る側へ。 自作 Lisp で得た新たな気づき。
andpad
0
150
Built Our Own Background Agent at LayerX
layerx
PRO
9
4.9k
変わらないものが、変わるものを決める — 意図駆動開発 × イベントソーシング × イミュータブル | What Doesn't Change Decides What Can — IDD × Event Sourcing × Immutability
tomohisa
0
1.2k
「人を評価する AI」の設計と実装
ryoyanara
0
160
5分で問診!Composer セキュリティ健康診断
codmoninc
0
870
yield再入門 #phpcon
o0h
PRO
0
950
使用 Meilisearch 建立新聞搜尋工具
johnroyer
0
220
ルールを書いて終わらせないハーネスエンジニアリング
yug1224
4
1.8k
テーブルをDELETEした
yuzneri
0
130
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
530
Featured
See All Featured
Design in an AI World
tapps
1
270
Building a Scalable Design System with Sketch
lauravandoore
463
34k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
The Curse of the Amulet
leimatthew05
2
14k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
How to Ace a Technical Interview
jacobian
281
24k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.5k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.4k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
430
Context Engineering - Making Every Token Count
addyosmani
9
1k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2k
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
͖ͯ͘Εͯ͋Γ͕ͱ͏ʂ ϑΟʔυόοΫ͋Γ͕ͱ͏͍͟͝·͢