Exemple d’utilisation de l’outil de profilage prof La commande prof de Unix.

Slides:



Advertisements
Présentations similaires
Module Systèmes d’exploitation
Advertisements

Les Structures.
Hiver 2010JGA Beaulieu GEF 243B Programmation informatique appliquée Structure de base des programmes en C.
GEF 243B Programmation informatique appliquée
Le Concept du programme enregistré
Patrick Reuter maître de conférences
Portée des variables VBA & Excel
UNIX Pour débutant. Applications En directNavigateurCourrierMode consoleFenêtrage http smtp ssh X Protocoles de communication Protocoles de communication.
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes dexploitation Structure des systèmes dexploitation (Tanenbaum 1.7)
GEF 435 Principes des systèmes d’exploitation
GEF 243B Programmation informatique appliquée Types dérivés, structures et tableaux §
Les Structures. Introduction : Imaginons que lon veuille afficher les notes dune classe délèves par ordre croissant avec les noms et prénoms de chaque.
Comparaison de deux pourcentages observés
Tests non paramétriques
C.
Le Concept du programme enregistré
Outils de développements
Introduction à la programmation (420-PK2-SL) cours 15 Gestion des applications Technologie de linformation (LEA.BW)
12 novembre 2012 Grégory Petit
Langage C Licence Informatique 3ème année
ON A LES MOYENS DE VOUS EXPORTER EXPORT & INVESTMENT Présentation des objectifs et principes du reporting budgétaire et comptable.
Introduction à la programmation (420-PK2-SL) cours 12 Gestion des applications Technologie de linformation (LEA.BW)
Récursivité.
Points importants de la semaine Les boucles. Les types arithmétiques. Les opérateurs.
Mars 2013 Grégory Petit
1 GPA435 Systèmes dexploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D. Chapitre 9 Filtre programmable nawk(1)
Algorithmique et Programmation
RESUMES Module II1 SOMMAIRE CYCLE 1 : Saisir – Afficher – Données
Methode de Tri efficace
Système d’exploitation
Groupe 1: Classes de même intervalle
Algorithmique et Programmation
Quest-ce quune classe dallocation? Une classe dallocation détermine la portée et la durée de vie dun objet ou dune fonction.
Les fichiers indexés (Les B-arbres)
Projet de C – Matrices creuses
Les Fonctions. Définir une fonction Sections de code indépendantes que lon peut appeler à nimporte quel moment et dans nimporte quel ordre. Bout de code.
1 GPA435 Systèmes dexploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D. Chapitre 9 Programmation nawk(1)
LIFI-Java 2004 Séance du Jeudi 9 sept. Cours 1. La notion de langage Décrire une tâche à effectuer –programme Écrire à un haut niveau –facile pour lutilisateur.
CSI3531 – Labo 1 Lobservation du comportement de processus.
Titres réductibles j puis appuyez sur F5 ou cliquez sur Diaporama > À partir du début pour commencer le cours. Dans la barre des messages, cliquez sur.
Programmation Système et Réseau (sous Linux)
Gérer la sécurité des mots de passe et les ressources
Initiation MS Access 2010 Requêtes - Sélection (travail en autonomie)
PROGRAMMATION INFORMATIQUE D’INGÉNIERIE II
Créer des packages.
Cédric LAOUENAN 20/11/2008 Tests statistiques Cédric LAOUENAN 20/11/2008
PROGRAMMATION INFORMATIQUE D’INGÉNIERIE II PRO-1024.
Programmation Système et Réseau
CSI 3525, Implémentation des sous-programmes, page 1 Implémentation des sous-programmes L’environnement dans les langages structurés en bloc La structure.
1 Système d’exploitation Les scripts csh 1 ère Année Année Tienté HSU.
En route vers le déploiement . . .
Citrix ® Presentation Server 4.0 : Administration Module 9 : Déploiement d'applications.
S. Domas Système d’Exploitation Make et la construction d’exécutables 1ère annéeIUT Belfort-Montbéliard.
Pour les boucles FOR on a fait intervenir la boucles TANT QUE équivalentes dont on connaît calculer le temps d’exécution. Toutes le procédures de comptage.
Création d’un projet (10) Cadepa 6-12 pour API TSX-37
Scripts et fonctions Instructions de contrôle
Chaîne de requêteCookieSession Sauvegarder un état via l'url Sauvegarder l'état La technique consiste à passer des informations via l'URL sous la forme:
Introduction à l’utilitaire
Redimensionner une image avec Paint Shop Pro 4.14 (PSP 4.14) Pré requis : !!! Pour PC UNIQUEMENT !!! Paint Shop Pro 4.14 doit être installé sur l’ordinateur.
Algorithmique Algorithmique  Pascal
TD N°5: Une GPAO pour l’usine Odyssée
Philippe Gandy – 10 novembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
Scénario Les scénarios permettent de modifier la position, taille … des calques au cours du temps. Son fonctionnement est très proche de celui de Macromedia.
Introduction à l’Informatique chap 3 Licence SPI Mme Delmotte.
A.Aarabi ´. ´ Objectifs Faciliter la prise en main du logiciel MATLAB Présenter les fonctionnalités utiles au travail scientifique.
Utilisation du logiciel EduStat © Analyse classique d’items Compilations.
Chapitre 12 Surveillance des ressources et des performances Module S41.
TD N°5: Une GPAO pour l’usine Odyssée. Lancement du logiciel Logiciel « Usine Odyssée 7 » disponible dans … Entrer votre nom et un nom d’entreprise de.
M. BENJELLOUN : 2005 Le but final est de programmer un jeu où l'ordinateur choisira un nombre aléatoire entre 0 et 100 que vous devez deviner.
Transcription de la présentation:

Exemple d’utilisation de l’outil de profilage prof La commande prof de Unix

Profilage avec prof Compte le nombre des appels à chacune des fonctions et mesure le temps passé dans chacune d’elles –Avantages :- Fourni avec Unix (arabica) - Simple d’utilisation –Inconvénients :- Donne seulement les informations sur les fonctions (pas un problèmes si le programme est bien structuré ) - Résultats pas toujours faciles à analyser pour des programmes de grande taille (trop d’informations) Sous Linux, l’outil de profilage s’appelle gprof

Utilisation Compiler le programme avec l’option –p –cc –p nomFichier.c Exécuter le programme normalement –a.out Lire le fichier mon.out avec prof –prof[-options] Attention: –Le fichier mon.out contient seulement les informations sur les fichiers compilés et liés avec l’option –p de cc. Faire attention si on utilise la compilation séparée des fichiers ou un makefile !

Options utiles (Traduction de man.SunOS 5.8Last change: 1 Nov 1999) SYNOPSIS prof [ -ChsVz ] [ -a | c | n | t ] [ -o | x ] [ -g | l] [ -m mdata ] [ prog ] OPTIONS Les options mutuellement exclusives : -a, -c, -n, et -t déterminent le type de tri appliqué à la sortie : -aTri par adresse croissante des fonctions -cTri par nombre décroissant d’appels -nTri par nom de fonction -tTri par pourcentage décroissant du temps tota (option par défaut) -m mdataUtilise le fichier mdata au lieu du fichier mon.out à l’entrée de prof

Exemple On utilise un petit programme de calcul statistique. Le programme calcule la moyenne des valeurs contenues dans un fichier, la valeur de la statistique chi-carré et sa valeur critique. Ensuite, le programme annonce si l'hypothèse nulle a été acceptée ou non. Le fichier de données (Gauss_2-LOG.hit) et le fichier des tables avec des valeurs critiques (tableChiSquare.txt) doivent être dans le même répertoire que le programme exécutable. La valeur de alpha choisie par défaut est 0.05 (pour plus de détails se référer à votre cours de statistiques MAT4680). Attention: Ce programme a été modifié pour le test de la fonction de profilage de Unix. Ce n’est pas un exemple de programmation efficace. Le programme est exécuté (en boucle) le nombre de fois spécifié en entrée par l'utilisateur (dans notre exemple 1, 100, 1000 et fois).

Exemple (2) Utilisation : Compiler : cc -p chiSquarePourProf (crée l’exécutable et le fichier de profil) Exécuter : a.out nbToursDeBoucle (donne des valeurs intéressantes à partir de 1000 appels) Lire le profilage : prof [-options] Liens vers le programme et les fichiers des données: chiSquarePourProf.c Gauss_2-LOG.hit tableChiSquare.txt

Résultats pour une (1) itération (valeur de 1 dans la boucle for principale) % a.out 1 Début main Moyenne Chi Square Valeur critique Accepter H0, pas de différence significative fin main Le programme a utilisé secondes % prof %Time Seconds Cumsecs #Calls msec/call Name libererMemoire accepterHypotheseNulle valeurCritique chiSquare moyenne lecture main

Résultats pour 100 itérations Le programme a utilisé secondes % prof %Time Seconds Cumsecs #Calls msec/call Name valeurCritique libererMemoire accepterHypotheseNulle chiSquare moyenne lecture main

Résultats pour itérations Le programme a utlilisé secondes % prof %Time Seconds Cumsecs #Calls msec/call Name valeurCritique chiSquare lecture libererMemoire accepterHypotheseNulle moyenne main

Résultats pour itérations Le programme a utilisé secondes % prof %Time Seconds Cumsecs #Calls msec/call Name chiSquare valeurCritique moyenne lecture main accepterHypotheseNulle libererMemoire

Conclusions On peut voir que le nombre d’opérations effectuées peut influencer le résultat produit par prof. Le temps cumulé (pour itérations) donné par prof est de 2.05 secondes, comparativement aux secondes données par la fonction clock(). La différence s’explique par le fait que prof mesure le temps réellement utilisé par les fonctions, alors que l’instruction clock() tient compte du temps global, c-à- d., elle mesure aussi le temps utilisé par d’autres programmes (y compris les fonctions système) exécutés en même temps. Les procédures à optimiser seraient donc chiSquare et valeurCritique. La première fait appel à la fonction qui calcule la moyenne et leur temps d’utilisation s’additionnent. La fonction valeurCritique lit un fichier, il est donc « normal » qu’elle soit relativement lente.