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
プロファイラを使ったPHPアプリケーション改善の勘所
Search
Ryo Tomidokoro
January 30, 2019
Programming
2
4.7k
プロファイラを使ったPHPアプリケーション改善の勘所
PHPでのプロファイラを使ったパフォーマンスチューニングについて
Ryo Tomidokoro
January 30, 2019
Tweet
Share
More Decks by Ryo Tomidokoro
See All by Ryo Tomidokoro
開発者が知っておきたい複雑さの正体/where-the-complexity-comes-from
hanhan1978
8
3.4k
Spec Driven Development入門/spec_driven_development_for_learners
hanhan1978
2
1.7k
フロントエンドがTypeScriptなら、バックエンドはPHPでもいいじゃない/php-is-not-bad
hanhan1978
8
14k
どうすると生き残れないのか/how-not-to-survive
hanhan1978
17
15k
100分で本番デプロイ!Laravelで作るWebアプリケーション作成/100min_web_app_cicd
hanhan1978
1
250
PHPerのための計算量入門/Complexity101 for PHPer
hanhan1978
8
3.5k
集中して作業する技術/how_to_work_deeply
hanhan1978
65
55k
PHPでデータベースを作ってみた/create-data-with-php
hanhan1978
11
11k
ADRを一年運用してみた/adr_after_a_year
hanhan1978
8
4.8k
Other Decks in Programming
See All in Programming
安いハードウェアでVulkan
fadis
0
540
へんな働き方
yusukebe
5
2.7k
SourceGeneratorのマーカー属性問題について
htkym
0
200
20260315 AWSなんもわからん🥲
chiilog
2
160
Agentic AI: Evolution oder Revolution
mobilelarson
PRO
0
190
Vuetify 3 → 4 何が変わった?差分と移行ポイント10分まとめ
koukimiura
0
150
CSC307 Lecture 15
javiergs
PRO
0
260
API Platformを活用したPHPによる本格的なWeb API開発 / api-platform-book-intro
ttskch
1
150
Redox OS でのネームスペース管理と chroot の実現
isanethen
0
260
Go Conference mini in Sendai 2026 : Goに新機能を提案し実装されるまでのフロー徹底解説
yamatoya
0
610
20260228_JAWS_Beginner_Kansai
takuyay0ne
5
590
grapheme_strrev関数が採択されました(あと雑感)
youkidearitai
PRO
1
230
Featured
See All Featured
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Music & Morning Musume
bryan
47
7.1k
Producing Creativity
orderedlist
PRO
348
40k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
1.9k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
0
240
RailsConf 2023
tenderlove
30
1.4k
It's Worth the Effort
3n
188
29k
The Cost Of JavaScript in 2023
addyosmani
55
9.8k
Design in an AI World
tapps
0
170
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
200
Claude Code のすすめ
schroneko
67
220k
Darren the Foodie - Storyboard
khoart
PRO
3
2.9k
Transcript
ϓϩϑΝΠϥΛͬͨ PHPΞϓϦέʔγϣϯվળͷצॴ 1)1ษڧձ
໊લॴ྄ 3ZP5PNJEPLPSP ৬ۀ8FC"QQMJDBUJPO&OHJOFFS ॴଐ*OOPWBUPS+BQBO*OD ࡶ༻୲ झຯόεέοτϘʔϧ؍ઓ
ຊͷ͓ʹ͍ͭͯ
PHPΞϓϦέʔγϣϯվળ ύϑΥʔϚϯενϡʔχϯά ※ϦϑΝΫλϦϯάͰͳ͍
ύϑΥʔϚϯενϡʔχϯάͱʁ
ύϑΥʔϚϯενϡʔχϯάͱʁ ࠓճϨεϙϯελΠϜͷվળʹ͍ͭͯ ϓϩϑΝΠϥΛͬͯཧ٧ΊͰߦ͏ํ๏
ࣄલࣝͷ෮श
8FCΞϓϦέʔγϣϯ͕Ϣʔβʹಧ͘·Ͱ ࢀর) ωοτϫʔΫͳͥͭͳ͕Δͷ͔ʁ - ށࠜۈ (ܦBPࣾ) P10
ίϯτϩʔϧͰ͖ͳ͍ཁૉ͕ଟ͍ ྫʣαʔϏεɾϓϩόΠμ ϢʔβʔࣗͷωοτϫʔΫػثɾ 8FCΞϓϦέʔγϣϯ͕Ϣʔβʹಧ͘·Ͱ
ΞϓϦέʔγϣϯ୯ମͰग़དྷͳ͍ղܾ๏ ྫʣCDNͰίϯςϯπ·ͰͷڑΛॖΊΔ Ұ෦ػೳΛSaaSʹΓସ͑Δ 8FCΞϓϦέʔγϣϯ͕Ϣʔβʹಧ͘·Ͱ
֮͑ͯཉ͍͠ݴ༿ ϨΠςϯγʔ ͭͨΊʹ͔͔ͬͨ࣌ؒΛܭଌͨ͠ ࢀর) ৄղγεςϜɾύϑΥʔϚϯε - Brendan Gregg ༃ߛ
ඌ ߴ߂ (ΦϥΠϦʔδϟύϯ) P6 ༷ʑͳέʔεͰར༻͞ΕΔ HTTPͷϦΫΤετ͔ΒϨεϙϯε·Ͱ DBͷΫΤϦૹ৴͔Βσʔλड৴·Ͱ
ϨΠςϯγʔͷܭଌ νϡʔχϯάͷલʹܭଌ͕ඞਢ ਪଌ͢ΔͳɺܭଌͤΑɻ
ཧ༝ͳ͠ͷվળ/( αʔϏεӡӦʹແӨڹ ٕज़తຬ͚ͩΛٻΊΔͷNG ࣌ؒ༗ݶ ཧը໘ܥ ΄΅ΘΕͳ͍ϨΞػೳ όονॲཧ ແҋʹϛυϧΣΞͱ͔ಋೖ͠ͳ͍
νϡʔχϯάΛߦ͏ཧ༝ͷྫ SLA ΫϨʔϜ ίετ໘ Ṗͷ̏ඵϧʔϧͰɺແ͍ΑΓϚγ ϨΠςϯγʔඪͷઃఆ ҰൠϢʔβɺιʔγϟϧΤΰαʔν αʔόʔݮ ػձଛࣦΛͳ͘͢ɻTVCMɻ
ͬͱຊ
νϡʔχϯάͷର ୯Ұαʔόͷੑೳ্ ࢀর) αʔό/ΠϯϑϥΛࢧ͑Δٕज़ - ٕज़ධࣾ 4ষ όοΫΤϯυΤϯδχΞͷ ˍίϯτʔϧՄೳͳྖҬ
νϡʔχϯάͷྲྀΕ ϨΠςϯγʔͷܭଌ ͷ͋Δϓϩηεͷಛఆ ϓϩϑΝΠϦϯά νϡʔχϯά ϨΠςϯγʔͷܭଌ
ϓϩϑΝΠϦϯά ίʔυ࣮ߦ࣌ʹҰମͲͷॲཧʹͲΕ͘Β͍ͷ࣌ ͕͔͔͍ؒͬͯΔͷ͔Λܭଌͨ͠ͷ Α͏͢Δʹ… ҰମԿ͕ͳΜͩʂʁΛڭ͑ͯ͘ΕΔ
ϨΠςϯγʔܭଌ WebΞϓϦϨεϙϯελΠϜͰOK Logʹग़ྗ curlͰԿͰ͍͍…ଌΕΕɻ Nginx : $request_time Apache : %D
ࠓճར༻͢ΔϓϩϑΝΠϥ blackfire.io ଞҙແ͍Ͱ͢ɺݱ࣌Ͱൺֱతಋೖ͕؆୯ͳSaaS ※ҙ AlpineͰಈ࡞͠ͳ͔ͬͨͰ͢
ϓϩϑΝΠϧ݁Ռ
ϓϩϑΝΠϧ݁Ռ
ϓϩϑΝΠϧ݁ՌΛධՁ վળՄೳͳΛܭࢉ 969 - 449 = 520msec ϘτϧωοΫΛղফ͢Δͱ50%ఔੑೳվળ
ϓϩϑΝΠϧ݁Ռ
ϓϩϑΝΠϧ݁Ռ
ϓϩϑΝΠϧ݁ՌΛධՁ վળՄೳͳΛܭࢉ 514 - 185 = 329msec ϘτϧωοΫΛղফ͢Δͱ35%ఔੑೳվળ
ϓϩϑΝΠϧ݁Ռ
νϡʔχϯάͷྲྀΕ ϨΠςϯγʔͷܭଌ ͷ͋Δϓϩηεͷಛఆ ϓϩϑΝΠϦϯά νϡʔχϯά ϨΠςϯγʔͷܭଌ
େࣄͳ৺ಘ
νϡʔχϯά࣌ͷඪޠ ϘτϧωοΫ͔ΒΛҳΒ͞ͳ͍ ؆୯Ͱখ͍͞վળʹಀ͛ͳ͍ ݪҼͱ݁Ռͷ๏ଇ ޮՌతͰͳ͍ ແବͳίʔυΛੜΉ
·ͱΊ
·ͱΊ ɾϓϩϑΝΠϦϯάສೳͰͳ͍ ɾܭଌ͕ඞਢ ɾཧ٧ΊͷTry & Error ৭Μͳղܾ๏ͷதͷ̍ͭͰ͔͠ͳ͍ ৬ਓܳෆཁɻࣈͰޠΓ·͠ΐ͏
͞ΒʹΓ͍ͨਓ…
͓͓ͪͯ͠Γ·͢ -BSBWFM+1$POGFSFODF
-BSBWFM+1$POGFSFODF ελοϑͰϫϯνϟϯ…