Passer au contenu principal
Le profileur de DataStore vous aide à mesurer le temps d’exécution et à identifier les goulots d’étranglement en matière de performances.

Démarrage rapide

Activer le profilage


API du profileur

Obtenir le profileur

report()

Affiche un rapport de performances.
Paramètres : Exemple de sortie :
Le rapport affiche :
  • La durée en millisecondes pour chaque étape
  • Le pourcentage du temps du parent par rapport au temps total
  • L’imbrication hiérarchique des opérations
  • Les métadonnées de chaque étape (par exemple, ops_count, ops)

step()

Mesurez manuellement le temps d’exécution d’un bloc de code.

clear()

Supprime toutes les données de profilage.

summary()

Renvoie un dictionnaire associant les noms des étapes à leur durée (ms).
Exemple de sortie :

Comprendre le rapport

Nom des étapes

Durée

  • Étapes de planification (Planification de la requête) : généralement rapides
  • Étapes d’exécution (Exécution SQL) : c’est là que s’effectue le travail réel
  • Étapes de transfert (Résultat vers un DataFrame) : conversion des données en DataFrame pandas

Identifier les goulots d’étranglement


Modèles de profilage

Profiler une seule requête

Profiler plusieurs requêtes

Comparer les approches


Conseils d’optimisation

1. Vérifiez le temps d’exécution SQL

Si SQL execution est le goulot d’étranglement :
  • Ajoutez davantage de filtres pour réduire le volume de données
  • Utilisez Parquet plutôt que CSV
  • Vérifiez la présence d’index adaptés (pour les sources de type base de données)

2. Vérifiez le temps d’E/S

Si read_csv ou read_parquet constitue le goulot d’étranglement :
  • Utilisez Parquet (format colonnaire, compressé)
  • Lisez uniquement les colonnes nécessaires
  • Filtrez à la source si possible

3. Vérifier le transfert des données

Si to_df est lent :
  • Le jeu de résultats est peut-être trop volumineux
  • Ajoutez davantage de filtres ou réduisez la limite
  • Utilisez head() pour un aperçu

4. Comparer les moteurs


Bonnes pratiques

1. Profiler avant d’optimiser

2. Nettoyer entre les tests

3. Utilisez min_duration_ms pour mieux cibler

4. Profilez des données représentatives

5. Désactiver en production


Exemple : session de profilage complète

Dernière modification le 2 juillet 2026