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