Mathieu Desnouveaux

Performance

17 sketchnotes disponibles pour ce thème

🚀

Optimisation et performance

Sketchnote illustrant ClickHouse pour les développeurs Symfony présentée par Romain Neutron au Symfony Live Paris 2026. Le schéma présente ClickHouse comme solution d'observabilité, une série de points pour surveiller une app. L'objectif est d'utiliser une BDD colonnaire. Les données sont stockées en colonnes avec une table Events ordonnée par couleur. ClickHouse est très performant en lecture et écriture, les données sont facilement compressées, et il est efficace pour les données immuables (alter possible mais coûteux). ClickHouse est open source, utilise un SQL similaire (Sitili SQL), est facilement intégrable avec Symfony et Kafka.

ClickHouse pour les développeurs Symfony

Publié le 31 mars 2026
Par Romain Neutron
🐘 PHP 📊 Data 🚀 Performance
📅 Symfony Live
Sketchnote illustrant les sidekicks applicatifs Symfony présentée par Nicolas Grekas au Symfony Live Paris 2026. Le schéma compare PHP (stateless by design, protégé mais difficile de toucher sa config) et FrankenPHP (Worker Mode, permet de lancer de l'action entre les requêtes). Le pipeline Worker HTTP montre : Sidekick → Tableau Blanc (set_vars, limité aux scalaires) → Thread HTTP (get_vars). Un exemple concret : un sidekick maintient à jour une liste de feature flags ou autre config en temps réel. Les usages incluent Health Monitoring, Service Discovery, Cache Invalidation et Feature Flags. L'intégration couvre Auto Configuration, Mode Hybride, FrankenPHP, Worker et Puppet. Les tâches à venir permettront de pousser des tâches aux workers.

Reconfigurer Symfony en temps réel avec des sidekicks applicatifs

Publié le 31 mars 2026
Par Nicolas Grekas
🐘 PHP 🏗️ Architecture 🚀 Performance
📅 Symfony Live
Sketchnote illustrant le JsonStreamer de Symfony présentée par Gary Pegeot au Symfony Live Paris 2026. Le schéma compare le Serializer classique au JsonStreamer : le Serializer utilise un normaliseur custom et crée un goulot d'étranglement en normalisant les entités vers JSON. Le JsonStreamer promet des performances x10 en POC, en passant par Objet → DTO → JSON via un Object Mapper. La garantie de migration s'appuie sur trois piliers : validation humaine, test snapshot et regression gate.

Passez à la vitesse supérieure avec le JsonStreamer

Publié le 31 mars 2026
Par Gary Pegeot
🐘 PHP 🚀 Performance
📅 Symfony Live
Sketchnote illustrant le Symfony Scheduler présentée par Jérémie Augustin au Symfony Live Paris 2026. Le schéma montre les tâches automatisées et programmées, avec les risques associés : pas d'exécution ou exécution multiple, visibilité manquante, scalabilité imparfaite, accès limité. La gestion de l'automatisation pointe vers Symfony Scheduler avec la mention "Merci Symfony pour les composants". La progression technique va de Monothread vers Multi Worker, puis Monitoring et Alerte. Le cas Legacy est traité avec les apports Symfony en DX, Test et Visibilité.

100 crons par seconde, le Scheduler se venge

Publié le 31 mars 2026
Par Jérémie Augustin
🐘 PHP 🚀 Performance
📅 Symfony Live
Sketchnote illustrant FrankenPHP et ses fonctionnalités avancées présentée au Forum PHP 2025. Le schéma montre que FrankenPHP est un moteur d'exécution PHP, supporte PDP PHP Foundation, et simplifie le déploiement et le packaging d'application. Six features principales sont présentées: 103 Early Hints (permet de préciser rapidement quoi prétélécharger, accélère la récupération des assets), Mercure (envoi de messages aux clients, notification simple), Binaire Static (package Franken, Caddy et le code source pour des déploiements simples), Worker Mode (garde en mémoire l'application, optimise considérablement les performances), Go Extension (simplifie le développement d'extension PHP, directement en Go), et Go Worker (permet d'exécuter du code en arrière plan Pargo avec gRPC dans FrankenPHP, Web Socket, FrankenPHP Queue).

FrankenPHP en dehors des sentiers battus

Publié le 30 novembre 2025
Par Kevin Dunglas
🐘 PHP 🚀 Performance 🛠️ Tools
📅 Forum PHP
Sketchnote illustrant les principes SOLID et l'injection de dépendances pour la performance au Forum PHP 2025. Le schéma montre les 5 principes SOLID (S-Responsabilité unique n'avoir qu'une seule raison de changer, O-Ouvert/Fermé ouvert à l'extension fermé à la modification on peut empiler des couches sans tout changer, L-Substitution de Liskov permet d'utiliser n'importe quelle classe fille, I-Ségrégation des interfaces réduit les interfaces et évite le couplage, D-Inversion de dépendance dépendre d'abstraction). Deux moments d'utilisation: 1-Au build (chercher les implémentations, ajout dans un fichier PHP), 2-Au runtime (on utilise le fichier). Extensions via décorateur (compiler pass) ou un attribut. L'injection de dépendance utilise les attributs pour identifier, configurer et décorer les dépendances. Pour résoudre des problèmes de perf, la solution est Lazyness avec un paresseux qui dit 'voir les détails dans la doc'.

PERF & Injection de dépendance - Êtes-vous assez paresseux-ses

Publié le 30 novembre 2025
Par Nicolas Grekas
🐘 PHP 🏗️ Architecture 🚀 Performance
📅 Forum PHP
Sketchnote illustrant 4 design patterns pour la résilience présentée au Forum PHP 2025. Le schéma commence par 'tout échoue tout le temps' avec le principe de réduire le blast radius et ne laisser pas un processus attendre pour rien. La corrélation entre les requêtes est expliquée (tout le monde en même temps mène à différer les requêtes et différer les retry). Quatre stratégies sont présentées: étaler les crons et multiplier les queues avec introduction de l'aléatoire (ampoule), constant work (engrenage - préparer les réponses avant de recevoir les requêtes), attention à la variabilité avec pic d'activité aléatoire et préparer les réponses, découper en cellules indépendantes (ciseaux), et shuffle sharding (dé - répartir aléatoirement les ressources).

4 design patterns avancés pour améliorer la résilience d'une application

Publié le 30 novembre 2025
Par Pascal Martin
🏗️ Architecture 🚀 Performance
📅 Forum PHP
Sketchnote illustrant comment gérer 180000 requêtes par seconde présentée au Forum PHP 2025. Le schéma montre la solution avec un laptop du marché + CURL (1996 dans PHP, depuis 2000). Deux stratégies principales: 1-Boucle de requêtes (en séquentiel, réutiliser la connexion) avec une ampoule indiquant l'idée, 2-Paralléliser les requêtes avec une alerte (busy looping pour attendre la fin d'une boucle). Le protocole HTTP/1.1 est expliqué avec client-serveur et plusieurs échanges pour une requête pour acquitter la requête. Le multiplexing montre une requête HTTP/2 parallèle. HTTP/3 arrive de QUIC avec UDP. La résolution DNS dans CURL montre multi-serveur (et repartissant les appels curl) puis mise en cache. Le multithread pour exploiter 100% du CPU mène à PCNTL et SCHTOP.

180 000 requêtes par seconde expliqué simplement

Publié le 30 novembre 2025
Par Xavier Leune
🚀 Performance 🐘 PHP
📅 Forum PHP
Sketchnote illustrant la défense de SQL face aux préjugés présentée au Forum PHP 2025. Le schéma montre l'accusation (complexité inutile, verbosité excessive, non moderne, performances douteuses) et la position d'avocat du SQL. La défense démontre que SQL est performant, élégant, moderne, efficace et simple, mais on l'apprend comme en 1992 et SQL a évolué, pas nous. Plusieurs cas sont présentés: l'affaire des 50000 UPDATE (PHP boucle foreach 50000 requête vs SQL 1 requête), l'enfer des sous-requêtes (solutionné avec des CTE vue temporaire nommée), le crime de la complexité (requête INSERT + requête SELECT returning donnant la norme), le cas du groupement d'info (requête ALL foreach vs Windows Function slice), et le problème pour chaque (requête ALL foreach vs requête latéral).

SQL vs les préjugés

Publié le 30 novembre 2025
Par Laeticia Avrot
📊 Data 🚀 Performance
📅 Forum PHP
Sketchnote détaillant la migration d'Apache vers FrankenPHP. La stack initiale montre plusieurs outils similaires (front/back) sans DevOps, simplifiant l'infra. Le choix radical: un conteneur pour tous avec Nginx pour HTTPS. L'idée: remplacer par FrankenPHP, présenté avec le crabe mascotte. La POC (Proof of Concept) est décrite comme 'aussi simple que changer le Dockerfile', automatisable et packageable. Les avantages incluent: par stack donc coûts non automatisables.

De Apache à FrankenPHP : simplifier notre infra sans douleur

Publié le 29 novembre 2025
Par Yoan Bernabeu
🐘 PHP 🚀 Performance 🔧 DevOps
📅 API Platform Conference
Sketchnote présentant l'intégration de Redis avec API Platform. Le schéma illustre l'object mapping pour convertir des objets vers des formats partageables, Redis comme base de données clé-valeur (RAM vers performance, string vers JSON hash). Une balance compare les avantages (format objet proche, performance) et inconvénients (mapping à faire, sécurité des données, persistance). RedisOM est présenté comme solution avec attributs pour le mapping, persistence à la Doctrine, et requêtes via Redis Search.

API Platform × Redis

Publié le 29 novembre 2025
Par Clément Talleu
🔗 API 🚀 Performance 🛠️ Tools
📅 API Platform Conference
Sketchnote illustrant l'intégration de gRPC dans API Platform. Le schéma montre l'architecture avec FrankenPHP comme connecteur central entre un client, API Platform (écrit en PHP) et une API Go utilisant gRPC. Les avantages de gRPC sont mis en avant: format binaire, faible latence, typage fort et agnosticisme du langage. Les cas d'usage concernent les micro-services, l'IoT ou encore les projets demandant de la résilience.

Enhance your API Platform APIs with Go thanks to FrankenPHP

Publié le 29 novembre 2025
Par Kévin Dunglas
🔗 API 🚀 Performance 🐘 PHP
📅 API Platform Conference