11 points par xguru 2024-10-24 | 2 commentaires | Partager sur WhatsApp
  • Un profileur CPU, GPU et mémoire haute performance pour Python, capable d’effectuer plusieurs tâches que les autres profileurs Python ne font pas ou ne peuvent pas faire
  • Il s’exécute bien plus rapidement tout en fournissant des informations beaucoup plus détaillées, et c’est aussi le premier profileur à intégrer des suggestions d’optimisation basées sur l’IA
  • Fournit une CLI et une interface graphique web
  • Rapide et précis
    • Rapide : utilise l’échantillonnage au lieu de s’appuyer sur l’instrumentation ou les fonctions de traçage de Python. Le surcoût ne dépasse généralement pas 10 à 20 %, et il est souvent inférieur
    • Précis : les tests de précision ont montré que Scalene est l’un des profileurs les plus précis et qu’il mesure correctement le temps d’exécution
    • Effectue le profiling au niveau des lignes et des fonctions afin d’indiquer les fonctions et les lignes de code précises responsables du temps d’exécution du programme
  • Profiling CPU
    • Mesure séparément le temps passé dans le code Python et le code natif (y compris les bibliothèques), afin d’aider les développeurs à se concentrer sur le code qu’ils peuvent réellement optimiser
    • Met en évidence en rouge les hotspots qui représentent une part importante du temps CPU ou des allocations mémoire
    • Isole séparément le temps système, ce qui permet de repérer facilement les goulots d’étranglement liés aux E/S
  • Profiling GPU
    • Reporte le temps GPU uniquement sur les systèmes basés sur NVIDIA
  • Profiling mémoire
    • Réalise un profiling de l’utilisation mémoire et identifie, via un allocateur mémoire spécial, les lignes de code précises à l’origine de l’augmentation mémoire
    • Affiche séparément la part de consommation mémoire du code Python et du code natif
    • Génère des profils mémoire ligne par ligne
    • Identifie les lignes susceptibles de provoquer des fuites mémoire
    • Le profiling du volume de copie permet de repérer facilement les copies involontaires lors du passage de la frontière entre Python et les bibliothèques (par exemple lorsqu’un tableau numpy est converti par erreur en tableau Python)
  • Autres fonctionnalités
    • L’option --reduced-profile permet de générer un profil réduit qui ne signale que les lignes consommant plus de 1 % du CPU ou effectuant au moins 100 allocations
    • Prend en charge le décorateur @profile, ce qui permet de profiler uniquement certaines fonctions
    • Permet de suspendre et reprendre le profiling des programmes exécutés en arrière-plan (lancés via &)

2 commentaires

 
lethee 2024-10-29

Cela semble plus léger et plus pratique à utiliser que Nsight ; je vais l’essayer et laisser un avis ! Merci pour la présentation.

 
xguru 2024-10-30

Si vous pouviez cliquer sur « j’aime », je vous en serais reconnaissant. Quand je publie ce genre de news de temps en temps, je me demande combien de personnes les regardent. Haha