Upgrade to Pro — share decks privately, control downloads, hide ads and more …

#phpcon2021 ステップ実行だけじゃないXdebug / hello-xdebug

#phpcon2021 ステップ実行だけじゃないXdebug / hello-xdebug

PHP Conference Japan 2021での発表資料です

https://fortee.jp/phpcon-2021/proposal/3ed8a69b-8618-4644-9a8c-655505078743

hideki kinjyo

October 03, 2021
Tweet

More Decks by hideki kinjyo

Other Decks in Programming

Transcript

  1. ࣗݾ঺հ • ⾦城秀樹 / きんじょうひでき • GitHub: @o0h / Twitter:

    @o0h_ • 好きなFWはCakePHP • アイコンは 美味しい鮭親⼦丼の写真です
  2. ͓͠ͳ͕͖ XdebugͷػೳͨͪΛ঺հ͍͖ͯ͠·͢ʂ 1. Xdebug3ͷಋೖʹ͍ͭͯͬ͘͟Γͱ 2. ։ൃϔϧύ / Development Helpers 3.

    ϑΝϯΫγϣϯτϨʔγϯά / Tracing 4. ϓϩϑΝΠϦϯά / Profiling 5. ίʔυΧόϨοδ / Code Coverage Analysis 6. ΨϕʔδίϨΫγϣϯ෼ੳ / GC Stats (ൃදͰ͸֓ཁ͚ͩ) 7. εςοϓ࣮ߦ / Step Debugger (ൃදͰ͸֓ཁ͚ͩ)
  3. Xdebug on the way to time traveling by Derick Rethans

    https://derickrethans.nl/talks/xdebug-phpmad21.pdf
  4. ʮ͜ΜͳʹεοΩϦ͠·ͨ͠ʯͷྫ • 公式の移⾏ガイドの例を⾒ると、随分とコン パクトになっていることが分かります • modeには 「off」もしくは機能を指定します • 有効値: off

    / develop / coverage / debug / gcstats /profile /trace • 複数の機能をカンマ区切りで複数指定可能 引⽤: Xdebug: Documentation » Xdebug 2 から 3 へのアップグレード https://xdebug.org/docs/upgrade_guide/ja
  5. Xdebugͷઃఆঢ়ଶͷ֬ೝ • Ͳͷmodeʹͳ͍ͬͯΔ͔ʁͲΜͳઃఆʹͳ͍ͬͯΔ͔ʁΛ ֬ೝ͍ͨ͠Ͱ͢ΑͶ • `phpinfo()` Ͱ΋ՄೳͰ͕͢ɺ `xdebug_info()` Λར༻͢ΔͱαΫοͱ෼͔Γ΍͍͢Ͱ͢ •

    ઃఆɾઃఆͷσόοάʹ͍ͭͯ͸Youtubeʹ͋Δಈը͕਌੾ 参考: Xdebug 3: Diagnostics - YouTube https://www.youtube.com/watch?v=IN6ihpJSFDw
  6. ಈ࡞ྫ • ๭FWΛྫʹɺ࣮ࡍʹʮͲΜͳײ͡ͳͷʁʯͱ͍͏ྫΛ • `xdebug_start_trace()` / `xdebug_stop_trace()` ؔ਺Λར༻͠ɺ ؔ৺ͷ͋ΔՕॴ͚ͩൈ͖ग़ͯ͠ݟΔ •

    ʮmodeΛ༗ޮʹ͢Δ → ίʔυΛॻ͘ˠ ࣮ߦ͢Δ → ϑΝΠ ϧʹग़ྗ͞ΕΔʯͱ͍͏ྲྀΕʹͳΓ·͢ • ࠓճͷྫͰ͸ˠͷΑ͏ʹઃఆ͠·ͨ͠
  7. PhpStorm / Execution Statistics • ͦΕͧΕͷॲཧʹඅ΍ͨ࣌ؒ͠ɾϝ ϞϦͷ෼ੳ͕ग़དྷ·͢ • Time/Memory: ͦͷॲཧʹඅ΍͠

    ͨίετ • Own Times / Memory: ݺͼग़͠ઌ Λআ͘ɺͦͷॲཧࣗମʹඅ΍ͨ͠ ίετ • Calls: ݺͼग़͞Εͨճ਺
  8. ࢀߟจݙ • WEB+DB PRESS Vol.122には 「パフォーマンスチューニングをしよう PHP 8で XdebugとWebgrindを使ってプロファイリング」 というお話が載っています

    • Xdebugの中の⼈(Derick Rethans⽒)が Youtubeに解説動画を投稿しています youtube.com/playlist?list=PLg9Kjjye-m1g_eXpdaifUqLqALLqZqKd4