Les profilers tel que Blackfire.io ou Memprof permettent de connaitre les fonctions qui prennent ou libèrent de la mémoire. Mais visualiser ce que contient la mémoire PHP permet de mieux comprendre les origines des memory leaks. L'extension PHP Meminfo fournit une vue synthétique du nombre d'instances par classe en mémoire, la liste complète des objets et autres structures avec les relations qui les lient (membre de classe, présence dans un tableau, etc...). L'accès à ces informations de liaisons permet de comprendre pourquoi un élément n'a pas été libéré de la mémoire en suivant les références qui continuent à pointer sur lui. Le talk commencera par expliquer les mécanismes de libérations de la mémoire (references counter, cyclic reference garbage collector) spécifique à PHP, les effets des memory leaks sur les performances applicatives, puis détaillera des cases studies de fuite mémoire et de leur analyse avec meminfo, ainsi que leur résolution.
Commentaires