les performances sur des développements php

24
Afin de contribuer au respect de l'environnement, merci de n'imprimer ce document qu'en cas de nécessité 29 mars 2011 Nicolas DEGARDIN PHPerfs Performances & Optimisation en PHP

Upload: neuros

Post on 21-Jun-2015

25.262 views

Category:

Technology


1 download

DESCRIPTION

Présentation chez Neuros pour nos nAcademy des bonnes pratiques pour étudier les problématiques de performance essentillement sur des applications ou sites webs développés en PhP.

TRANSCRIPT

Page 1: Les performances sur des développements PhP

Afin de contribuer au respect de l'environnement, merci de n'imprimer ce document qu'en cas de nécessité

29 mars 2011 Nicolas DEGARDIN

PHPerfs Performances & Optimisation en PHP

Page 2: Les performances sur des développements PhP

Introduction

à-propos

Site à optimiser Site manquant d’optimisation

Page 3: Les performances sur des développements PhP

Introduction

performances et le web

o CPU o Mémoire o Stockage o Bande passante Temps de traitement Temps de transmission Temps de réponse (requêtes par seconde)

Page 4: Les performances sur des développements PhP

Introduction

performances et le web

Fixer le contexte

Etablir des objectifs

Page 5: Les performances sur des développements PhP

Introduction

performances et le web

Adapter les technologies

o Framework / CMS / à la root’s o Objet / Procédural o Librairies C / librairies PHP

Page 6: Les performances sur des développements PhP

Introduction

performances et le web

Mesurer

o Obtention de points de comparaison o Détection ponctuelle des inefficacités/bouchons o Surveillance o Ne pas se fier à son intuition

Page 7: Les performances sur des développements PhP

Introduction

performances et le web

S’arrêter…

Les Graphes de NID #1

Page 8: Les performances sur des développements PhP

Mesure

CPU et PHP

o Gestionnaire des tâches o top o tout ce qui permet d’afficher des processus…

Peu d’outils

Page 9: Les performances sur des développements PhP

Mesure

Stockage et PHP

o logs o création/stockage de documents o BDD o documents uploadés o session o fichiers de cache

Volumétrie à prévoir

Page 10: Les performances sur des développements PhP

Mesure

Mémoire et PHP

o liste des processus o memory_get_usage(), memory_get_peak_usage() o stacktrace Xdebug (voir API)

Plusieurs méthodes

Page 11: Les performances sur des développements PhP

Mesure

Requêtes par seconde et PHP

o ApacheBench o Siege o httperf

Montée en charge

Page 12: Les performances sur des développements PhP

Mesure

Temps de transmission et PHP

o Réduire le nombre de fichiers JS/CSS/images afin de réduire la sollicitation du serveur o Réduire leur taille o Smarty output filter « trim white space » permet de retirer les espaces/tabulations de la page finale

Limiter les requêtes au serveur

Page 13: Les performances sur des développements PhP

Mesure

Temps de traitement et PHP

o Zend_Debugger o Xdebug o Outils BDD

Profiling

Page 14: Les performances sur des développements PhP

Mesure

SQL Server Management 2005 – estimation du plan d’exécution

Page 15: Les performances sur des développements PhP

Optimisation

Optimisation du code

J’essaye de réduire mon code au minimum de lignes possibles, c’est plus optimisé

Il faut utiliser des simples quotes au lieu des doubles quotes, c’est plus rapide à interpéter

Il vaut mieux un gros fichier contenant plein de classes, qu’un fichier par classe, c’est plus performant

T’as tout biché!

Page 16: Les performances sur des développements PhP

Optimisation

Optimisation du code

Design patterns

Page 17: Les performances sur des développements PhP

Optimisation

Optimisation du code

Cache

o SQL (PHP ou BDD) o Session o Zend_Cache o Smarty o etc…

Page 18: Les performances sur des développements PhP

Optimisation

Optimisation du code

Cache via la session

Page 19: Les performances sur des développements PhP

Optimisation

Optimisation du code

Cache Zend

Page 20: Les performances sur des développements PhP

Optimisation

Optimisation du code

Cache Smarty

Page 21: Les performances sur des développements PhP

Optimisation

Optimisation du code

Bonnes pratiques

o Autoloader plutôt que require_once() o Réduire et ordonnancer les include_path o Utiliser des en-têtes HTTP (Cache-Control, Expire) o Eviter les regexps…

Page 22: Les performances sur des développements PhP

Optimisation

Optimisation autre

Configuration

o php.ini, par exemple realpath_cache_size o configuration Apache…

Page 23: Les performances sur des développements PhP

Optimisation

Optimisation autre

Saturation

o Mémoire : dimensionner la mémoire par rapport à la consommation moyenne par thread o CPU : pas grand chose à faire, des pics CPU sont souvent liés à l’utilisation d’une VM. Donc bien choisir la technologie de virtualisation… o Ne pas oublier Google Analytics/XITI pour surveiller la charge

Page 24: Les performances sur des développements PhP

Optimisation

APPLAUSE