titleTemplate
theme
background
highlighter
lineNumbers
info
css
hideInToc
%s
seriph
shiki
true
false
unocss
true
L'état des profilers PHP en 2024
Introduction, explication et qui sont les acteurs en place ?
layout: center
hideInToc: true
layout: center
class: text-center
src: ./pages/presentations.md
layout: center
title: La petite histoire
level: 1
layout: section
title: La définition
level: 1
layout: quote
hideInToc: true
Getting started with profiling can be intimidating, especially because the term “profiler” is used to refer to so many specific types of tools. - Sentry
layout: center
hideInToc: true
layout: section
hideInToc: true
Le premier date de 1970 !
layout: section
title: Fonctionnement
level: 2
layout: two-cols-header
hideInToc: true
::left::
::right::
layout: section
hideInToc: true
Comment on visualise nos résultats ?
layout: center
hideInToc: true
layout: section
hideInToc: true
layout: section
hideInToc: true
layout: two-cols-header
hideInToc: true
::right::
Speedscore (visualisation)
layout: image
image: /flamegraph_wiki_uptodown_zoom.png
layout: center
hideInToc: true
layout: section
hideInToc: true
Profilers PHP les plus utilisés en 2024
layout: section
hideInToc: true
layout: center
hideInToc: true
L'argent & | l'administratif..
Cas d'utilisation courants et exemples de mise en œuvre en production
layout: center
hideInToc: true
layout: section
hideInToc: true
layout: section
hideInToc: true
layout: section
hideInToc: true
layout: image
image: /sentry_ui.png
hideInToc: true
layout: section
hideInToc: true
Tool
Call graph
Flame graph
Autre visualisation
Historisation
Open source
Excimer-ui
✅
✅
Pyroscope
✅
✅
✅
Blackfire
✅
✅
Sentry
✅
✅
✅
Outil cachegrind locaux
✅
✅
✅
layout: center
hideInToc: true
Cas d'utilisation courants et exemples de mise en œuvre en environnement local
layout: center
hideInToc: true
sudo apt-get install php-xdebug
install-php-extensions xdebug
xdebug.mode = profile
xdebug.output_dir = /app/public/xdebug
xdebug.start_with_request = trigger // démarre avec un header
install-php-extensions xhprof
xhprof.output_dir = /app/public/xhprof
xhprof_enable ();
register_shutdown_function (function () {
$ data = xhprof_disable ();
file_put_contents ('public/xhprof/ ' . uniqid () . '.yourapp.xhprof ' , serialize ($ data ));
});
layout: section
hideInToc: true
docker run --rm -v ./public/xdebug:/tmp -p 800:80 jokkedk/webgrind:latest
layout: default
hideInToc: true
layout: default
title: Visualisation de XHProf
level: 2
layout: default
title: Impact sur les performances
level: 1
Impact sur les performances (échantillonage vs instrumentation)
Env
Pas de profiling
Excimer
Xhprof
Xdebug
Dev
~1,76sec
~1,78sec (1.1%)
~2,77sec (57.4%)
~5,55sec (215.3%)
Prod
~665ms
~670ms (0.98%)
~1200ms (80.5%)
~2200ms (230.8%)
layout: center
title: Mais pourquoi profiler en production ?
level: 1
Pourquoi profiler en production ?
layout: section
title: Perspectives d'avenir des profilers après 2024 & bilan
level: 1
Perspectives d'avenir des profilers après 2024 & bilan
Sentry & excimer c'est tip top !
layout: section
hideInToc: true
layout: two-cols-header
hideInToc: true
Pour faire des retours sur les slides
::right::
layout: end
hideInToc: true