16
NOV

Forum PHP 2010 - Résumé des conférences du dernier jour

Publié le 16/11/10 à 10h42 par DJo

Suite au résumé des conférences de la première journée du Forum PHP, voici la suite avec celles du lendemain.

Nous avons choisi des conférences orientées optimisations, debug et performance.

 

Xdebug

Cette deuxième journée de conférences commence par une présentation avancée d'Xdebug, l'outil open-source de débuggage PHP, présentée par son auteur Derick Rethans.

xDebug - Deboguer en PHP

Fonctionnant sur tout type d'OS, Xdebug permet d'afficher un trace log des appels PHP pour retrouver plus simplement l'origine d'une erreur. Il peut également formater la fonction var_dump pour améliorer l'affichage du contenu d'une variable:

Xdebug

Il est possible d'affiner le nombre de lignes maximum à afficher, de la récurisivité sur les enfants ( profondeur d'un array dans un objet ou autre array).

L'opérateur php @ permet de cacher les warnings et autres erreurs : en phase de développemet cela peut être génant pour debugger son application. Xdebug permet de l'inhiber en passant le paramètre xdebug.scream à 1.

Pour le profiling, KCacheGrind peut être utilisé sous Linux ou Webgrind, une version appli web.

Slides de la conférence

 

 

Un site web performant, tout est dans le réseau et le navigateur

Optimisation des pages web: Côté client

Une conférence très intéressante sur les manières d'optimiser vos pages web, plus côté client que serveur.

En effet, Eric Daspet nous a montré que le temps de chargement était optimisable d'environ 500ms côté serveur (Si le site est bien développé), alors qu'on pouvait gagner plusieurs secondes côté client (Images, JS, CSS, requêtes HTTP...).

"Il faut réduire la latence !"

Il nous présente ensuite plusieurs astuces pour faire baisser le temps de chargement de ses pages web.

Certaines sont déjà connues de tous bons développeurs, mais d'autres sont moins évidentes!

  • 1) Fusionner les JS et CSS pour avoir 1 fichier js et 1 css maximum
  • 2) Utiliser des sprites CSS (Réduction des appels HTTP pour charger les différentes images)
  • 3) Utiliser des CDN (Content Delivery Network) pour récupérer des ressources plus proches
  • 4) Utiliser les URI Data: Pour images, documents mhtml, archives JAR ...
  • 5) Utiliser des domaines multiples pour vos fichiers, permet d'activer des chargements parallèles
  • 6) Connexions persistantes à activer sur Apache (keep alive)
  • 7) Activer la compression GZIP d'apache, supprimez les espaces blancs et recompressez les images.
  • 8) Chargez en différé avec de l'Ajax les choses moins importantes. Ou mettre le code en bas de page.

 

Nous avons déjà commencé à appliquer certaines de ces recommendations (que l'on retrouve aussi avec YSlow) sur la Ferme du Web. Nous ferons un billet avec les résultats pour chaque amélioration.

Slides de la conférence

 

APC & Memcached : un DUO de haute-performance

Pour cette troisième conférérence de l'après-midi, nous avons assisté à celle d'Ilia Alshanetsky consacré au couple APC/Memcached.

APC & Memcached - Forum PHP 2010

APC est surtout connu pour être un accélérateur PHP pour mettre en cache le code PHP précomplié et ainsi améliorer les performances de ses applications écrites en PHP : c'est surtout utile avec l'utilisation de frameworks. En effet, le contenu des fichiers "core" ne changeant pas en phase de production, on évite ainsi d'avoir à passer à chaque éxécution pour le compilateur PHP pour interpréter son code.

Mais APC peut également servir pour mettre en cache des données utilisateurs en RAM, à l'aide des fonctions PHP natives (apc_add, apc_fetch, apc_store, etc). Pour des raisons de perfomances, il est déconseiller de supprimer des données du cache "en live", car cela peut provoquer de restructures toutes les tables de hash internes. Il vaut mieux affecter des valeurs d'expiration à ses données ou via des crons.

Ses principaux avantages :

  • Souvent utiliser par les hébergeurs, comme accélérateur PHP, donc facilement utilisable comme cache de données.
  • Efficace pour le stockage de types simples (scalaires, tableaux).
  • Vraiement très simple d'utilisation, sans configuration.

Ses principaux inconvenients :

  • Restreint à PHP
  • Utilisable seulement en local
  • Opcode + Cache de données : tous ses oeufs dans le même panier

C'est à la lumière de ses inconvénients que l'utilisation de Memcached prend tout son sens.

Memcached est un sytème de cache distribué qui stockent des données et des objets en RAM permettant de réduire les accés distants (disques, bases de données, etc) et ainsi augmenter le temps de génération (et de réponses) des sites webs. Il peut également être très utiles pour gérer les sessions dans le cas d'une configuration multi-serveurs pour garder la même session.

Ses principaux avantages :

  • Peut interagir avec d'autres langages
  • Stockage d'objets
  • Utilisation multi-serveurs avec priorités
  • Possibilités de segmenter ses données en spécifiant des serveurs fixes
  • Gestion native de compteurs (gestion de stats, nombre de connectés,…)
  • Compression des données

Ses principaux inconvenients :

  • Plus lent qu'APC, surtout pour le stockage de tableaux
  • Require un deamon externe
  • Difficiellement utilisable en environnement mutualisé

Parmi les astuces données, 2/3 sont interresante :

* En utilisant igbinary pour sérialiser les données mises en cache, Memcached tavaille 30% + vite et peut compresser les données de 45% en moins par rapport aux fonctions natives de sérialisation de PHP.

* Si l'instance est locale : la connexion sera plus rapide avec les sockets Unix :

$mc->addServer('/var/run/memcached/11211.sock', 0);

* Lors de la récupération d'une donnée, il ne faut pas oublier de tester que le code de retour est bien "Succès" pour être certain que ce n'était pas la valeur "FALSE" qui était stocké :

if ((($data = $mc->get('key')) === FALSE) && ($mc->getResultCode() != MemCached::RES_SUCCESS)){ 
  die("Not Found");
}

Télécharger les slides de la conférence

State of the MySQL ecosystem: SkySQL et Monty Program

Kaj Arnö et Rasmus Johansson que nous avons eu la chance d'interviewer dans la même journée ont clôturé cette journée par une conférence sur MySQL, son état actuel, et plus particulièrement sur MariaDB.

State of the MySQL ecosystem: SkySQL et Monty Program

Pourquoi MariaDB ?

MariaDB: "Save the People, Save the Product"

S'assurer qu'une version gratuite de MySQL existe toujours.

Avoir une version développée par la communauté

A propos de MariaDB

"C'est une branche de MySQL et non un fork": Mise à jour de la version actuelle en licence GPL.

Orienté communautaire, le développement est ouvert. Plusieurs développeurs exterieurs actifs aujourd'hui.

MariaDB 5.1 vs MySQL

XtraDB, PBXT et FederatedX: Nouveaux moteurs de stockage

Statistiques de performances évoluées: Requêtes lentes, précision à la microseconde dans la processlist...

Maria DB 5.2

Nouvelles fonctionnalités:

  • Colonnes virtuelles
  • userstatsv2 patch
  • mysqlbinlog
  • Key cache MyISAM partintionné
  • Nouveaux moteurs: Sphinx et Oqgraph (bientôt SPIDER)
  • Authentification pluggable: Créer son propre système d'identification

Le futur de Maria DB

  • Batched Key Access
  • Optimisation des sous requêtes
  • Hash joins
  • Varchar et blob support pour HEAP

MariaDB et PHP

  • Maria DB fonctionne parfaitement avec PHP
  • Utilisation du connecteur ext/mysqli
  • Mysqlnd fonctionne aussi
  • Zend Framework et Drupal recommandent MariaDB

SkySQL: "Separation of church and state"

Monty program sont les developpeurs: Corrigent les bugs, ajoutent des fonctionnalités.

SkySQL: Boite fondée avec des employés de MySQL. Ils travaillent tous en télétravail, continuent comme lorsqu'ils bossaient chez MySQL.

Ils s'occupent de la commercialisation de MariaDB, de son support client etc.

Ils payent MariaDB pour qu'ils corrigent certains bugs de leurs clients.

 

Pour finir, les deux compères, toujours aussi décalés et fun, se sont mis à chanter un chant traditionnel Nordique puis ont ouvert une bouteille d'alcool pour boire avec ceux qui le désiraient ! Sympa :)

 

Pour aller plus loin

Le programme des conférences étant assez denses cette année, et ayant l'opportunité d'effectuer des interviews pendant le forum, nous n'avons pas pu assistés à toutes les conférences. Néanmoins, vous pouvez retrouver ci-dessous une sélection de slides des présentations disponibles :

 

Personne n'a baraguiné de chtite phrase pour le moment !


Ajouter un Commentaire

Pour poster un commentaire, vous devez être identifié. Vous pouvez choisir parmi ces trois méthodes d'identification:

Compte la Ferme du Web

Identifiez-vous
Inscrivez-vous

Compte Facebook

Connexion avec Facebook

Compte Twitter

Connexion avec votre compte twitter
Rechercher sur la Ferme du web