170 likes | 378 Views
Profiler OpenEdge. 13 décembre 2007 Hugues Aubuchon. Méthodes classiques. Messages / traces Time / etime Compile xref (table scan, utilisation des index) Méthode forêt boréale Déni (C’est la faute au DBA). Profiler Openedge. Introduit en V9 Mécanisme interne Objet Profiler
E N D
Profiler OpenEdge 13 décembre 2007 Hugues Aubuchon
Méthodes classiques • Messages / traces • Time / etime • Compile xref (table scan, utilisation des index) • Méthode forêt boréale • Déni (C’est la faute au DBA)
Profiler Openedge • Introduit en V9 • Mécanisme interne • Objet Profiler • Outil de contrôle • Utilitaire Progress pour simplifier • Non supporté par Progress • Télécharger sur psdn • Comporte des bugs
Profilage d’une session Progress • Paramètres de départ -profile « nom du .pf qui contient les options suivantes » -COVERAGE -DESCRIPTION "Profiler AS“ -FILENAME "D:\OpenEdge\WRK\prof.out” -LISTINGS "D:\OpenEdge\WRK“ • Objet Profiler PROFILER:COVERAGE = no. PROFILER:DESCRIPTION = "Profiler AS“ PROFILER:FILENAME = "D:\OpenEdge\WRK\prof.out” PROFILER:LISTINGS = "D:\OpenEdge\WRK“ PROFILER:ENABLED = yes. PROFILER:PROFILING = yes.
Propriétés et méthodes • Description(description de la session) • Directory (où vont les fichier debug) • Enabled (prêt à profiler – initialise les tables internes) • Profiling (trace active ou non) • Coverage(liste les lignes exécutables par procédure) • Listing (génère les listings de debug) • File-name(nom et chemin du fichier d’analyse) • Trace-filter(filtrer des « patterns ») • Tracing(profiler seulement des procédure et lignes) • Write-data() (écrit sur disque le fichier d’analyse)
Fichier d’analyse Description Data Section Format: IntegerVersion Date "Description" SystemTime "Userid” Exemple: 1 12/12/2007 "Essai #1" 19:24:14 "haubuchon« Module Data Section Format: IntegerModuleID "ModuleName" "DebugListingFile" IntegerCRCVal Exemple: 44 "set-ndinfoeditdesc.p" "" 0 28 "USER-INTERFACE-TRIGGER chgbug.p" "" 0 1 "/usr/rdl/devdbs6/scc-bug.p" "sccbugrun/00a06814.dbg" 42913 Call-tree Data Section Format: CallerIDCallerLinenoCalleeIDCallCount Exemple: 0 0 17 1 0 0 19 1 22 33 23 9054 22 39 24 9
Fichier d’analyse (suite) Line Summary Section Format: ModuleIDLineNoExecCountActualTimeCumulativeTime. Exemple: 26 291 1 0.001915 0.022753 8 306 66 1.357740 1.387024 50 270 1 0.000473 0.000473 Tracing Data Section Format: ModuleIDLineNoActualTimeStartTime Exemple: 50 270 0.000160 123.000954 53 116 0.000170 1432.789112 2 14 0.000143 0.132210
Fichier d’analyse (suite) Coverage Data Section Format: ModuleID "EntryName" LineCount Exemple: 10 "foobar" 5 325 326 327 328 330 User Data Section Format: WriteTime "UserData”
Outil de contrôle du profiler • Outil non supporté officiellement • Existe depuis version 9 • Répertoire <DLC>\src\profiler • A été réécrit récemment version 10 • Plus simple à utiliser et plus rapide • Pas besoin de base de données • Un seul outil • Sur site psdn (attention bug) • Outil GUI mais fonctionne bien en CHUI
Séance de profilage • Démarrer profiler/profile.w • Régler les paramètres • Démarrer une procédure ou l’application • Arrêter le profilage (ou attendre la fin de la procédure) • Visualiser le résultat • Faire des changement • Recommencer et comparer
Démo • Profiling simple • Comparaison avant / après
Sujets avancés • Profilage de code en arrière plan ou distant • Appserver avec Dynamics • profiler/profgetfile.p • profiler/profileronoff.p • Appserver sans Dynamics • Mécanismes permanents (built-in) • Inclus dans l’application • Menus cachés
Merci ! JoyeusesFêteetàl’anprochain