IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

Symfony2 : tests de performances:


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2014
    Messages : 3
    Par défaut Symfony2 : tests de performances:
    Bonjour,

    Afin de pouvoir comparer les performances d’un code écrit sous Symfony2 avec celles d’un code en PHP simple, mais aussi pour me permettre de calculer les éventuelles lenteurs liées aux différents composants utilisés par le framework (Doctrine et Twig, principalement), j’ai réalisé une série de tests consistant à reproduire la même application sous différents critères et mesurer le temps de génération de la page. Par après, j’ai recommencé ces même tests en activant ou non l’accélérateur APC et la classe ApcClassLoader (qui met en cache l’emplacement de chaque classe une fois qu’elles ont été trouvées la première fois).

    L’application est très simple : afficher un article et les commentaires qui lui sont liés. Pour me concentrer uniquement sur les performances côté serveur, je n’ai utilisé aucune image mais uniquement deux fichiers CSS (un reset et un style extrêmement basique).

    Tous ces tests ont étés réalisés sur Symfony2.4.2, en environnement de production, sur le même serveur, un serveur virtuel (VPS) OVH, sous la configuration suivante :

    > OS : Linux

    > Version de PHP : 5.3.3

    > Version d’APC : 3.1.9

    Les temps de génération des différentes pages sont mesurés avec Firebug 1.12.7, sous l’onglet Analyseur Réseau, depuis Firefox 28, sous un environnement Windows 7.

    Pour plus de précision et pour ne pas que les résultats soient faussés par la charge intempestive du serveur, chaque temps correspond à une moyenne de plusieurs rechargements de la même page.

    Voici dans les grandes lignes, les différents résultats que j’ai obtenu. Un pdf reprenant plus en détail les temps de chaque test, avec notamment le temps d’initialisation de Symfony, sans cache de production, sera téléchargeable en fin d’article.

    Résultats:
    Nom : wedp.png
Affichages : 409
Taille : 40,0 Ko

    Analyse des résultats :

    Au vu de ces chiffres, on peut facilement déduire qu’une application Symfony2 prend jusqu’à trois fois le temps de génération de la même application codée ’from scratch’.

    On peut voir également que même si les résultats d’APC ne sont pas fulgurants, l’accélérateur réduit légèrement le travail du serveur et donc la génération de la page de quelques dizaines de ms.

    Utiliser Doctrine est bien plus lent qu’accéder à une base de données de manière conventionnelle. Son utilisation rallonge inévitablement les temps de chargement puisque l’ORM est implémenté dans les trois pages les plus lentes que j’ai obtenu.

    En revanche, Symfony2 semble être optimisé pour travailler avec Twig, car malgré le travail évident que le moteur de template nécessite pour tout reconvertir en PHP, une page affichée par PHP consommera plus de temps.

    La gestion du cache par le reverse proxy de Symfony2 réduit légèrement les temps de chargement dans le cas d’une seconde visite sur la même page. Couplé aux en-têtes HTTP ETags et Last-Modified, on peut réduire la génération d’une page au contenu statique de quelques ms supplémentaires. Malheureusement, ce système ne fonctionnera pas de manière optimale sur une page au contenu dynamique.

    En conclusion, sans pour autant afficher des performances catastrophiques, un code sous Symfony2 est visiblement bien plus lent qu’un code php classique.

    Après une première initialisation du système de cache, les temps de génération sont acceptables au vu de tout ce que le framework doit gérer. De plus, ces temps de chargement peuvent être sensiblement diminués grâce à l’accélérateur PHP APC.


    PDF des résultats: http://www.fichier-pdf.fr/2014/04/10/testsymfony2/


    Si vous avez des avis où des remarques, si ces chiffres vous semblent bizarres, n'hésitez pas à m'en faire part.

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 168
    Par défaut
    Si tu as le temps pose ton code sur un git.

    J'ai l'impression que tu n'as pas activé le cache driver apc pour doctrine dans ta config.

  3. #3
    Membre Expert

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Par défaut
    Pourquoi utiliser une version obsolète (5.3.3)?

    Peux-tu refaire le même test avec PHP 5.5, donc avec l'OpCache activé et toutes les améliorations apportées depuis?

  4. #4
    Membre Expert Avatar de Nico_F
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2011
    Messages : 728
    Par défaut
    N'oublie pas de nous montrer aussi le bench du temps de développement...

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 17
    Par défaut
    Bonjour,
    Est il possible d'avoir également des tests en utilisant autre chose que Doctrine (pdo, propel ou autre) ?

  6. #6
    Membre très actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2007
    Messages
    643
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2007
    Messages : 643
    Par défaut
    excellent travail felicitations

Discussions similaires

  1. Faites vos tests de performance avec nmon sous Aix
    Par Katyucha dans le forum Contribuez
    Réponses: 1
    Dernier message: 27/03/2007, 17h17
  2. Teste de performance MSDE ou SQL server EXpress
    Par mahboub dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 08/12/2006, 09h34
  3. [MySQL] Test de performance général sur une application PHP
    Par Invité dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 30/06/2006, 17h36
  4. Réponses: 1
    Dernier message: 17/06/2006, 09h08
  5. [9iR2] : Test de performance
    Par debutant_oracle dans le forum Oracle
    Réponses: 2
    Dernier message: 22/02/2006, 16h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo