2. l`analyse des performances
Transcription
2. l`analyse des performances
PHASE D’ELABORATION – COMPTE RENDU ANALYSE DES PERFORMANCES Version 1.0 UMBRELLO Version MERGEFORM AT 14/12/2006 VERSION DATE DESCRIPTION DES EVOLUTIONS AUTEURS 1.0 13/12/2006 Création Equipe de projet M1 IUP ISI 2006/2007 2/6 Version MERGEFORM AT 14/12/2006 TABLE DES MATIÈRES TABLE DES MATIÈRES..............................................................................................3 1. L’OUTIL UTILISE : VALGRIND/CALLGRIND................................................................4 1.1. Présentation générale :..................................................................................................4 1.2. But de callgrind :............................................................................................................4 2. L’ANALYSE DES PERFORMANCES :...........................................................................5 2.1. Strategie d’analyse :.......................................................................................................5 2.2. Etude des performances lors du déplacement d'un objet :........................................5 2.3. Etude des performances lors d'un Undo/Redo............................................................6 IUP ISI 2006/2007 3/6 Version 14/12/2006 1. L’OUTIL UTILISE : VALGRIND/CALLGRIND 1.1. Présentation générale : Callgrind est un outil de Valgrind pour « profiler » les programmes. Les données rassemblées représentent, entre autres, le nombre d'instructions enregistrées sur une exécution et leur rapport avec le code source. On peut choisir de mettre en option, un simulateur de cache qui peut produire d'autres informations sur le comportement d'accès mémoire de l'application. 1.2. But de callgrind : Le principal but d’utiliser callgrind est de déterminer exactement les fonctions/méthodes que le programme appelle plus souvent que d’autres et s’il y passe plus de temps. Ainsi, on améliore l’exécution. IUP ISI 2006/2007 4/6 Version 14/12/2006 2. L’ANALYSE DES PERFORMANCES : 2.1. Strategie d’analyse : Nous avons décidé d’étudier les performances à partir de tous les diagrammes proposés par Umbrello. Nous les avons testé aux limites (présentées ci dessous), que nous avions estimées avec Madame Ober: Type de diagramme Nombre d’objet minimal Nombre d’objet maximal Classes séquence collaboration Cas d’utilisation Etat Activités Composant Déploiement Relation ente entités 10 10 10 1 10 10 10 2 10 200 40 40 40 300 200 40 20 200 Après avoir créé un diagramme pour chacune des limites, nous avons effectués pour chacun d'entre eux des tests sur les déplacements d'objets et sur les undo/redo. 2.2. Etude des performances lors du déplacement d'un objet : Nous avons remarqué que lors d'un déplacement, quelque soit le diagramme ou l'objet déplacé, les fonctions qui prennent le plus de temps sont principalement : • Q3Canvas::changeBounds et Q3Canvas::chunck : changeBounds et chunk sont quasiment tout le temps appelées par des méthodes n'appartenant pas à Umbrello. • XdrawPoints : Cette méthode est appelée par la méthode drawBackground de la classe UMLViewCanvas via un QPainter passé en paramètre. drawBackground permet d'afficher le quadrillage de fond. L'utilisateur peut choisir de l'afficher ou non. Dans le premier cas, il sera réaffiché à chaque déplacement et undo/redo. IUP ISI 2006/2007 5/6 Version 14/12/2006 L'algorithme de cette méthode consiste à parcourir la fenêtre du diagramme en longueur et largeur et à afficher à chaque fois un point du quadrillage. 2.3. Etude des performances lors d'un Undo/Redo On a constaté que pour chaque UNDO et chaque REDO effectués, Umbrello appelle les méthodes saveToXmi et loadToXmi. Lors de cette dernière Umbrello va extraire d'un fichier temporaire les informations comme il le fait lors de l'ouverture d'un XMI existant. IUP ISI 2006/2007 6/6