Audite ce code pour identifier les problèmes de performance : [COLLER LE CODE OU DÉCRIRE LE GOULOT D'ÉTRANGLEMENT]. Performance actuelle : [MÉTRIQUES SI DISPONIBLES]. Cible de performance souhaitée : [DÉFINIR]. Analyse : 1) Complexité algorithmique — identifier les patterns O(n²) ou pires, 2) Efficacité des requêtes de base de données (N+1, index manquants, sur-interrogation), 3) Patterns d'allocation mémoire et fuites potentielles, 4) Opérations I/O bloquantes à rendre asynchrones, 5) Opportunités de mise en cache, 6) Calculs inutiles ou appels redondants. Priorise les corrections par impact. Fournis des benchmarks avant/après pour les principales recommandations.