change de nom...
Chez Codéin, nous utilisons API Platform au quotidien pour nos projets en Symfony. En tant que sponsor de l'API Platform Conference 2024, cet événement nous a permis d’explorer les dernières tendances techniques.
Pour partager les moments clés, nous publions une série d’articles. Que vous soyez développeur ou simplement curieux, nous espérons que ces articles vous inspireront.
Dans ce quatrième article, nous revenons sur la présentation de Mathias Arlaud : "Making API Platform Serialization Superfast".
Mathias Arlaud est lead développeur et un consultant certifié Symfony
Mathias Arlaud a présenté un talk très technique sur l'optimisation de la sérialisation des données pour la rendre “super rapide”
Mathias a d'abord expliqué le concept de sérialisation : il s'agit de changer la représentation des données pour pouvoir les envoyer, puis les reconstruire.
Il nous a ensuite décrit le fonctionnement actuel de la sérialisation et de la désérialisation dans le sérialiseur de Symfony. Aujourd'hui, la sérialisation est coûteuse, car elle doit inspecter tous les objets afin d’identifier ce qui doit être normalisé. De plus, le sérialiseur stocke toutes les données dans un tableau, ce qui consomme rapidement beaucoup de mémoire.
Pour résoudre ces problématiques, Mathias a proposé une nouvelle méthodologie pour accélérer la sérialisation des données :
Cependant, Mathias a souligné que ces nouvelles approches sont incompatibles avec le système actuellement en place des groupes de sérialisation. Elles nécessitent la création de classes de sérialisation en cache, uniques pour chaque modèle de données. Avec les groupes de sérialisation, le nombre de modèles possibles devient exponentiel en fonction des groupes, ce qui pose un problème.
Pour contourner cela, Mathias recommande d'utiliser des DTO (Data Transfer Objects) plutôt que les groupes de sérialisation, et propose une classe "AutoMapper" pour faciliter leur hydratation.
Ces innovations ne sont pas encore disponibles dans Symfony, car il ne s'agit pour l'instant que de pull requests expérimentales sur lesquelles beaucoup de travail reste à faire. Néanmoins, Mathias a déjà constaté une amélioration de la rapidité de 4 000 % avec ses nouvelles méthodes, par rapport au sérialiseur standard de Symfony.
La présentation de Mathias Arlaud a éclairé l’importance d’optimiser la sérialisation des données. En proposant des solutions comme l’utilisation du streaming et des métadonnées plus précises, il a montré comment on pourrait rendre les API bien plus rapides et efficaces. Même si certaines limitations existent encore, les résultats obtenus sont impressionnants et ouvrent la voie à d'autres améliorations. |
Restez connectés pour découvrir nos prochains articles sur les autres conférences de l’événement !