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 :

Symfony 4.4 :Performance avec le Serializer Symfony


Sujet :

Symfony PHP

  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2011
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2011
    Messages : 72
    Par défaut Symfony 4.4 :Performance avec le Serializer Symfony
    Bonjour à tous,

    Je viens demander un peu d'aide sur un problème de performance concernant le serializer natif de Symfony

    En effet, si j'essaye de sérialiser un tableau d'objet comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $serializedReservations = $this->serializer->serialize($reservations, 'json', ['groups' => 'detailReservationStock', 'enable_max_depth' => true]);
    La serialization prend plus de 1s

    En revanche si je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $data = [];
    foreach ($reservations as $reservation){
    	$data['idreservation'] = $reservation->getIdreservation();
    	$data['iddetailcommande'] = $reservation->getIddetailcommande()->getIddetailcommande();
    	$data['titre'] =$reservation->getIddetailcommande()->getTitre();
    	$data['nrserie'] =$reservation->getIdstock()->getNrserie();
    	$data['dlc'] =$reservation->getIdstock()->getDlc();
    }
    $serializedReservations = $this->serializer->serialize($data, 'json', ['groups' => 'detailReservationStock', 'enable_max_depth' => true]);
    La sérialisation prend seulement 21 ms !

    Alors bien entendu, c'est plus rapide de serialiser un array qu'un objet, mais pourquoi la 1ère méthode est aussi lente alors qu'elle contient exactement les mêmes données (le groupe "detailReservationStock" filtre les mêmes 6 données que je récupère dans le data[]) ?


    Si quelqu'un à une idée ou ne serait-ce qu'une piste, je suis preneur. Si je n'arrive pas à régler le problème k'essayerais peut-etre de passer sur JmsSerializer :/

    PS : Désolé pour le franglais dans le code, c'est un projet "historique", difficile de tout nettoyer maintenant

  2. #2
    Membre Expert
    Avatar de Alexandre T
    Homme Profil pro
    Chef de projets AMO
    Inscrit en
    Mai 2002
    Messages
    1 213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets AMO
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 213
    Par défaut
    Bonjour,

    Je suis désolé, j'ai attendu de voir si qqn pourrait t'apporter une solution. Je ne saurai t'expliquer les raisons.

    As-tu essayé avec le JMS serializer depuis ce temps ? Est-ce que cela change certaines performances ?

    Voici quelques pistes pour débugger le souci :
    • backfire.io permet de découvrir ce qui rame ;
    • essaie de nous communiquer les diverses informations qui viennent du profiler et notamment les onglets :
      • performances,
      • doctrine,
      • évènements.

    • "dump" la variable avant et après sérialisation dans les deux cas.


    N'hésite pas à publier tout cela ici, si tu n'avances pas !
    Alexandre Tranchant
    Chef de projet AMO pour le Cerema.
    Retrouvez mes articles sur PHP et Symfony

Discussions similaires

  1. Problème de performance avec LEFT OUTER JOIN
    Par jgfa9 dans le forum Requêtes
    Réponses: 6
    Dernier message: 17/07/2005, 13h17
  2. [C#] Probléme de performance avec IsDbNull
    Par jab dans le forum Windows Forms
    Réponses: 8
    Dernier message: 04/04/2005, 11h39
  3. Réponses: 14
    Dernier message: 09/08/2004, 13h42
  4. problemes de performances avec les requetes select
    Par berry dans le forum Requêtes
    Réponses: 3
    Dernier message: 10/07/2003, 13h39
  5. [JDBC][connexion persistante] performances avec JDBC
    Par nawac dans le forum Connexion aux bases de données
    Réponses: 6
    Dernier message: 06/05/2003, 10h37

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