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

Profilisanje koda sa Xdebug i KCachegrind

robertbasic
February 21, 2017

Profilisanje koda sa Xdebug i KCachegrind

robertbasic

February 21, 2017
Tweet

More Decks by robertbasic

Other Decks in Programming

Transcript

  1. Robert Bašić ~ PHPSrbija #20
    Profilisanje koda sa
    Xdebug i KCachegrind
    Robert Bašić
    https://robertbasic.com/
    @robertbasic

    View Slide

  2. Robert Bašić ~ PHPSrbija #20
    Performanse su bitne
    ● UX - User Experience
    ● Korisnici
    ● Kompanija, brend
    ● Operativni troškovi

    View Slide

  3. Robert Bašić ~ PHPSrbija #20
    Šta utiče na brzinu?
    ● Hardware servera
    ● Upiti ka bazama
    ● Broj HTTP requestova

    View Slide

  4. Robert Bašić ~ PHPSrbija #20
    Kod nikad nije usko grlo… ili?

    View Slide

  5. Robert Bašić ~ PHPSrbija #20
    Alati zanata
    Xdebug
    ● Nije samo za debugging
    KCachegrind
    ● Prikazivanje profiling podataka

    View Slide

  6. Robert Bašić ~ PHPSrbija #20
    Xdebug podešavanja

    View Slide

  7. Robert Bašić ~ PHPSrbija #20
    ● proj.local/slow-page?XDEBUG_PROFILE=1
    ● Firefox: The easiest Xdebug
    ● Chrome: Xdebug helper
    Pokretanje profilinga

    View Slide

  8. Robert Bašić ~ PHPSrbija #20
    KCachegrind

    View Slide

  9. Robert Bašić ~ PHPSrbija #20
    Broj poziva

    View Slide

  10. Robert Bašić ~ PHPSrbija #20
    Ko je kriv?

    View Slide

  11. Robert Bašić ~ PHPSrbija #20
    Ne, stvarno, ko je kriv?

    View Slide

  12. Robert Bašić ~ PHPSrbija #20
    Najlakše je prebaciti krivicu na druge...

    View Slide

  13. Robert Bašić ~ PHPSrbija #20
    Svi su krivi!

    View Slide

  14. Robert Bašić ~ PHPSrbija #20
    Graf, da vidiš

    View Slide

  15. Robert Bašić ~ PHPSrbija #20
    Context, da shvatiš

    View Slide

  16. Robert Bašić ~ PHPSrbija #20
    Popravljanje problema performansi
    Ovo je do tebe

    View Slide

  17. Robert Bašić ~ PHPSrbija #20
    Nekoliko saveta
    ● Najveći uticaj, najmanje rada
    ● Profile posle svake promene
    ● Izbegavajte preteranu optimizaciju
    ● Naučite da koristite EXPLAIN

    View Slide

  18. Robert Bašić ~ PHPSrbija #20
    Saveti za korišćenje Xdebuga i KCachegrinda
    ● Xdebug
    – xdebug.profiler_output_dir
    – xdebug.profiler_output_name
    – cachegrind.out.%t.%R
    – Xdebug laže!
    ● KCachegrind
    – Instalirajte graphviz
    – Koristite % relative
    – Uključite Cycle detection
    – Settings > Configure KCachegrind > Annotations > Add source folder

    View Slide

  19. Robert Bašić ~ PHPSrbija #20
    Ostali alati
    ● WinCacheGrind, Webgrind
    ● XHProf
    ● Blackfire.io

    View Slide

  20. Robert Bašić ~ PHPSrbija #20
    Hvala!
    Pitanja?

    View Slide