Compétences python-performance-optimization
📦

python-performance-optimization

Sûr

Optimiser les performances et le profilage du code Python

Également disponible depuis: wshobson,ActiveInferenceInstitute

Un code Python lent gaspille des ressources et frustre les utilisateurs. Cette compétence fournit des techniques systématiques de profilage et d'optimisation pour identifier les goulots d'étranglement et améliorer les performances.

Prend en charge: Claude Codex Code(CC)
🥉 72 Bronze
1

Télécharger le ZIP du skill

2

Importer dans Claude

Allez dans Paramètres → Capacités → Skills → Importer un skill

3

Activez et commencez à utiliser

Tester

Utilisation de "python-performance-optimization". Profiler une fonction qui traite une grande liste

Résultat attendu:

Rapport de timing montrant que process_data() a consommé 2,3s (85% du temps total), avec 90% passé dans des boucles imbriquées. Recommandation : Remplacer l'algorithme O(n²) par une recherche dictionnaire pour une performance O(n).

Utilisation de "python-performance-optimization". Analyser le motif d'utilisation de la mémoire

Résultat attendu:

Le profil mémoire montre une allocation de 500MB dans le dictionnaire data_cache qui croît sans limite. Recommandation : Implémenter un cache LRU avec le paramètre maxsize ou utiliser WeakValueDictionary pour un nettoyage automatique.

Audit de sécurité

Sûr
v1 • 2/24/2026

Static analysis flagged 68 patterns but all are false positives. The backtick detections are markdown code formatting, not shell execution. Network and URL findings are educational examples using test endpoints. SQLite references are documentation examples. System reconnaissance patterns are legitimate profiling tool demonstrations. This is a documentation-only skill with no executable code or security risks.

2
Fichiers analysés
908
Lignes analysées
0
résultats
1
Total des audits
Aucun problème de sécurité trouvé
Audité par: claude

Score de qualité

38
Architecture
100
Maintenabilité
87
Contenu
32
Communauté
100
Sécurité
100
Conformité aux spécifications

Ce que vous pouvez construire

Déboguer les endpoints d'API lents

Profiler une application web pour identifier les requêtes de base de données lentes et optimiser les temps de réponse.

Optimiser les pipelines de traitement de données

Analyser l'utilisation de la mémoire et le temps d'exécution des workflows ETL pour réduire la consommation de ressources.

Améliorer l'efficacité des algorithmes

Profiler le code computationnel pour identifier les motifs inefficaces et appliquer les optimisations appropriées.

Essayez ces prompts

Configuration de profilage basique
Aidez-moi à profiler cette fonction Python pour identifier les goulots d'étranglement. Voici mon code : [paste code]. Montrez-moi comment utiliser cProfile pour mesurer le temps d'exécution et trouver les fonctions lentes.
Investigation des fuites mémoire
Mon application Python utilise de plus en plus de mémoire au fil du temps. Aidez-moi à utiliser memory_profiler et tracemalloc pour identifier les fuites mémoire dans ce code : [paste code]. Expliquez ce que signifie la sortie.
Recommandations d'optimisation
J'ai profilé mon code et trouvé ces goulots d'étranglement : [paste profiling output]. Recommandez des techniques d'optimisation spécifiques et montrez des exemples de code avant/après pour chaque suggestion.
Profilage avancé en production
Guidez-moi dans la configuration de py-spy pour profiler un service Python en production sans l'arrêter. Expliquez comment générer des flame graphs et interpréter les résultats pour trouver les chemins critiques.

Bonnes pratiques

  • Toujours profiler avant d'optimiser pour identifier les vrais goulots d'étranglement, pas ceux supposés
  • Utiliser les structures de données appropriées : dictionnaires pour les recherches, ensembles pour les tests d'appartenance, générateurs pour les grandes séquences
  • Mettre en cache les calculs coûteux avec functools.lru_cache et grouper les opérations I/O pour réduire la surcharge des appels système

Éviter

  • Optimiser sans données de profilage conduit à un effort gaspillé sur les non-goulots d'étranglement
  • La concaténation de chaînes dans les boucles avec l'opérateur + au lieu de join() cause une complexité quadratique
  • Charger des fichiers entiers ou des ensembles de données en mémoire alors qu'un traitement basé sur un itérateur serait suffisant

Foire aux questions

Quel profiler dois-je utiliser en premier ?
Commencez par cProfile pour le profilage CPU global. Il est intégré à Python et montre quelles fonctions consomment le plus de temps. Utilisez line_profiler pour une analyse ligne par ligne détaillée des fonctions chaudes spécifiques.
Comment profiler du code en production sans impacter les performances ?
Utilisez py-spy, un profileur d'échantillonnage qui s'attache aux processus en cours avec une surcharge minimale. Il peut générer des flame graphs et ne nécessite pas de modifications de code ou de redémarrages.
Pourquoi mon code optimisé est-il plus lent que l'original ?
Les causes courantes incluent l'optimisation prématurée des chemins froids, la complexité ajoutée causant des misses de cache, ou les micro-optimisations qui interfèrent avec les optimisations internes de Python. Benchmarkez toujours les changements.
Quand dois-je utiliser le multiprocessing versus le threading ?
Utilisez multiprocessing pour les tâches CPU-bound pour contourner le GIL et utiliser plusieurs cœurs. Utilisez threading ou asyncio pour les tâches I/O-bound où le GIL est relâché pendant les opérations I/O.
Comment puis-je réduire l'utilisation de la mémoire dans mon application Python ?
Utilisez des générateurs au lieu de listes pour les grandes séquences, implémentez __slots__ dans les classes avec de nombreuses instances, évitez de garder des références inutiles, et utilisez des références faibles pour les caches.
NumPy est-il toujours plus rapide que Python pur ?
NumPy excelle dans les opérations vectorisées numériques sur de grands tableaux grâce à son implémentation en C. Pour les petits ensembles de données ou les tâches non numériques, Python pur peut être plus simple et tout aussi rapide.

Détails du développeur

Structure de fichiers