Performance web. Mesurer. Analyser. Optimiser. Benjamin Lampérier - Benoît Goyheneche. RMLL 2015 - Beauvais. 8 Juillet 2015



Documents pareils
Performance Front-End

Optimiser les performances d un site web. Nicolas Chevallier Camille Roux

Mysql. Les requêtes préparées Prepared statements

Comprendre et optimiser la base de données WordPress WP TECH 2014

CRÉER, ROUTER ET GÉRER UNE NEWSLETTER, UN ING

MYSQLDUMP & ZRM COMMUNITY

Pratique et administration des systèmes

PHP 5. La base de données MySql. A. Belaïd 1

Programmation Web. Madalina Croitoru IUT Montpellier

WordPress Référencement naturel (SEO) Optimiser. son référencement. Daniel Roch. Préface d Olivier Andrieu

Stockage du fichier dans une table mysql:

Mysql avec EasyPhp. 1 er mars 2006

WordPress Référencement naturel (SEO) Optimiser. son référencement. Daniel Roch. Préface d Olivier Andrieu

CREATION WEB DYNAMIQUE

Jean-Pierre VINCENT Consultant indépendant

AngularJS pour une application d'entreprise

Industrialiser la gestion des fichiers multimédia. Aurélien Navarre

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ;

3W Academy Programme de Formation Développeur Intégrateur web Total : 400 heures

Sécurité des sites Web Pas un cours un recueil du net. INF340 Jean-François Berdjugin

PHP. Bertrand Estellon. 26 avril Aix-Marseille Université. Bertrand Estellon (AMU) PHP 26 avril / 214

Session S12 Les bases de l optimisation SQL avec DB2 for i

Lorsque l'on rencontre des problèmes de performance, il est souvent trop tard "mais cette fois, c'est sûr, on a la bonne solution!

Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement

Optimisation de son site web. v1 23/05/2014

laposte.net) Ministère de l'éducation nationale Atelier sécurité Rabat RALL 2007

Les bases de l optimisation SQL avec DB2 for i

Performance, rendement Vs Evolutivité

PHP et les Bases de données - Généralités

PHP 5.4 Développez un site web dynamique et interactif

Plan Général Prévisionnel (1/2) (non contractuel) Internet et Outils L1/IO S2-IO2 Bases de données: Jointures, Transactions

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)

Installation sur un serveur personnel

Django et PostgreSQL sous la charge

Joomla! Création et administration d'un site web - Version numérique

PROGRAMME DE LA 1ERE JOURNEE DE FORMATION : QUALITE WEB ET REFERENCEMENT NATUREL

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013

FTP : File TRansfer Protocol => permets d envoyer des gros fichiers sur un serveur (ou de télécharger depuis le serveur)

Technologies Web. Ludovic Denoyer Sylvain Lamprier Mohamed Amine Baazizi Gabriella Contardo Narcisse Nya. Université Pierre et Marie Curie

Attaques applicatives

OCS Inventory & GLPI

1 Introduction et installation

ISC Système d Information Architecture et Administration d un SGBD Compléments SQL

CATALOGUE DES FORMATIONS 2014

Synchronisation Mysql (Replication)

SQL Historique

Etude et développement d un moteur de recherche

Diffuser un contenu sur Internet : notions de base... 13

BTS/CGO P10 SYSTEME INFORMATION Année

Mise en place d un serveur Proxy sous Ubuntu / Debian

Qualité web : les bonnes pratiques front-end

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

(structure des entêtes)

Les bases de données

Créer et animer une boutique en ligne avec Wordpress (environnement PC et MAC)

PHP 4 PARTIE : BASE DE DONNEES

TP Bases de données réparties

Nous vous proposons des formations à la carte et vous accompagnons dans leur mise en oeuvre au quotidien.

La balise object incorporer du contenu en HTML valide strict

Introduction. PHP = Personal Home Pages ou PHP Hypertext Preprocessor. Langage de script interprété (non compilé)

Réussir. son site e-commerce. avecoscommerce

Sécuriser les applications web de l entreprise

Cassandra chez Chronopost pour traiter en temps réel 1,5 milliard d événements par an

Les bonnes pratiques. de l hébergement d un CMS

Bacula R - The Network Backup Solution

Magasins et entrepôts de données (Datamart, data warehouse) Approche relationnelle pour l'analyse des données en ligne (ROLAP)

INTRODUCTION. Mysql-server est un serveur de bases de données. Cest un logiciel libre.

Sommaire. I.1 : Alimentation à partir d un fichier Access (.mdb)...2

Développement d'applications Web HTML5 L'art et la manière avec Visual Studio 2015 et TFS

S informer et se développer avec internet

Formation Webmaster : Création de site Web Initiation + Approfondissement

PHP. PHP et bases de données

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

SYSTÈMES D INFORMATIONS

Technologies du Web. Créer et héberger un site Web. Pierre Senellart. Page 1 / 26 Licence de droits d usage

La programmation orientée objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des données PHP/MySQL. Le langage PHP (2)

Technologies du Web. Ludovic DENOYER - ludovic.denoyer@lip6.fr. Février 2014 UPMC

Programmation Web. Introduction

NFA016 : Introduction. Pour naviguer sur le Web, il faut : Naviguer: dialoguer avec un serveur web

INSTALLATION DE L APPLICATION DU CONTEXTE ITASTE

Maarch Framework 3 - Maarch. Tests de charge. Professional Services. 11, bd du Sud Est Nanterre

Création d'un site dynamique en PHP avec Dreamweaver et MySQL

Installation d OwnCloud 8.0 sous Debian Avec connexion des utilisateurs active directory et mise en place de HTTPS

Comment Connecter une Base de Données MySQL via un Driver JDBC Avec OpenOffice.org

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

Vulnérabilités et sécurisation des applications Web

Démonstration de la mise en cache via HTML 5 sur iphone

Informatique & Systèmes de Communication. Stages de 12 à 16 semaines aux Etats-Unis

Devenez un véritable développeur web en 3 mois!

L3 informatique TP n o 2 : Les applications réseau

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

RAPPORT AUDIT SEO. Élaboré à l'attention de : Monsieur Greber Élaboré par : Cédric Peinado

PDO : PHP Data Object 1/13

Soon_AdvancedCache. Module Magento SOON. Rédacteur. Relecture & validation technique. Historique des révisions

Ocs Inventory et GLPI s appuie sur un serveur LAMP. Je vais donc commencer par installer les paquets nécessaires.

HTTP. Technologies du Web. Programmation Web côté serveur. Mastère spécialisé Management et nouvelles technologies, 16 novembre 2009

Transcription:

Benjamin Lampérier - Benoît Goyheneche RMLL 2015 - Beauvais 8 Juillet 2015

1 2 3

État des lieux On ne change rien On optimise intelligemment

Avant de commencer Mettre les chaines de caractères entre simple quotes est plus rapide qu entre des doubles quotes echo est plus rapide que print

Avant de commencer Mettre les chaines de caractères entre simple quotes est plus rapide qu entre des doubles quotes echo est plus rapide que print Plus rapide de 0,006 secondes

Quelques repères Le cerveau humain réagit en 500ms

Quelques repères Le cerveau humain réagit en 500ms Latence Bande passante

Quelques repères Le cerveau humain réagit en 500ms Latence Bande passante Latence applicative

Les initiatives à connaitre Make the faster

Les initiatives à connaitre Make the faster label mobile friendly

Les initiatives à connaitre Make the faster label mobile friendly warning slow

Pourquoi optimiser? Référencement

Pourquoi optimiser? Référencement Expérience utilisateur

Pourquoi optimiser? Référencement Expérience utilisateur Taux de conversion

Pourquoi optimiser? Référencement Expérience utilisateur Taux de conversion Coût de l infrastructure

Quoi? Vitesse de chargement

Quoi? Vitesse de chargement Nombre de requêtes

Quoi? Vitesse de chargement Nombre de requêtes Poids de la page

Quels outils? https://gtmetrix.com/

Quels outils? https://gtmetrix.com/ https://developers.google.com/speed/pagespeed/

Quels outils? https://gtmetrix.com/ https://developers.google.com/speed/pagespeed/ https://www.dareboost.com

Quels outils? https://gtmetrix.com/ https://developers.google.com/speed/pagespeed/ https://www.dareboost.com Inspecteur de code

Comprendre le déroulement d une requête

GT Metrix

Google speed page

Inspecteur de code

Un peu de logique Calculons le ratio temps serveur / temps navigateur 0,23 / 3, 65 = 6,3 % pour le serveur 93,7 % du temps pour le navigateur

Update Travailler avec des outils à jour PHP : Environ 20% de gain par version.

KISS Faire simple

Mysql Limiter les requêtes SELECT * VS SELECT MaCol1, MaCol2

MySQL : Trouver les requêtes lentes Modifier le fichier my.cnf slow-query-log long query time = 1

MySQL : Trouver les requêtes lentes Modifier le fichier my.cnf slow-query-log long query time = 1 log-queries-not-using-indexes

MySQL : Trouver les requêtes lentes Modifier le fichier my.cnf slow-query-log long query time = 1 log-queries-not-using-indexes log-output = TABLE

MySQL : Utiliser les index L indexation de notre base de données : permet de gagner du temps lors de la recherche ralentit l insertion, la mise à jour

Apache : la compression Activer la compression Gzip

Apache : la compression Activer la compression Gzip a2enmod deflate && /etc/init.d/apache2 reload

Apache : la compression Activer la compression Gzip a2enmod deflate && /etc/init.d/apache2 reload /etc/apache2/conf.d/mod deflate.conf AddOutputFilterByType DEFLATE text/html text/plain text/xml

Apache : l expiration ExpiresByType

Apache : l expiration ExpiresByType a2enmod expires && /etc/init.d/apache2 reload

Apache : l expiration ExpiresByType a2enmod expires && /etc/init.d/apache2 reload /etc/apache2/conf.d/expires ExpiresActive On ExpiresByType image/jpg "access plus 30 days" ExpiresByType text/css "access plus 30 days"

PHP : Maîtrisez vos boucles N utilisez pas de fonction dans des boucles for ($x=0; $x < count($array); $x++)

PHP : Maîtrisez vos boucles N utilisez pas de fonction dans des boucles for ($x=0; $x < count($array); $x++) Évitez les boucles imbriquées

PHP : Maîtrisez vos boucles N utilisez pas de fonction dans des boucles for ($x=0; $x < count($array); $x++) Évitez les boucles imbriquées $result = mysql query("select * FROM copains"); while ($user = db fetch object($result)){ $countresult = mysql query("select count(1) FROM bieres WHERE copain id = $copain.id"); }

PHP : Maîtrisez vos boucles N utilisez pas de fonction dans des boucles for ($x=0; $x < count($array); $x++) Évitez les boucles imbriquées $result = mysql query("select * FROM copains"); while ($user = db fetch object($result)){ $countresult = mysql query("select count(1) FROM bieres WHERE copain id = $copain.id"); } $result = mysql query(" SELECT copains.*, count(bieres.id) FROM copains INNER JOIN bieres ON copains.id=bieres.copains id GROUP BY copains.id"); while ($user = db fetch object($result))

PHP : Autoload composer.phar dump-autoload --optimize

Côté client : le chargement HTML ET CSS dès que possible

Côté client : le chargement HTML ET CSS dès que possible Javascript le plus tard possible

Côté client : le chargement HTML ET CSS dès que possible Javascript le plus tard possible Différer le chargement des ressources non nécessaires au chargement

Côté client : les fichiers Minifier les fichiers

Côté client : les fichiers Minifier les fichiers.maclass { /* Commentaire sur ma classe*/ margin: 0px 0px 0px 0px; } devient.maclass{margin:0}

Côté client : les fichiers Minifier les fichiers.maclass { /* Commentaire sur ma classe*/ margin: 0px 0px 0px 0px; } devient.maclass{margin:0} grunt, gulp...

Côté client : les images Réduire le poids des images

Côté client : les images Réduire le poids des images utilisation des sprites css

Côté client : Réduire le nombre d appels concaténer les fichiers js et css

Côté client : Réduire le nombre d appels concaténer les fichiers js et css css court dans le html

Exemples concaténer les fichiers js et css

Exemples concaténer les fichiers js et css css court dans le html

Exemples

Des questions?

Merci de votre attention