Skip to content
Snippets Groups Projects
README.md 3.87 KiB
Newer Older
GUEHL PASCAL's avatar
GUEHL PASCAL committed
# P4a : analyse de performances
GUEHL PASCAL's avatar
GUEHL PASCAL committed

GUEHL PASCAL's avatar
GUEHL PASCAL committed
## Problème
GUEHL PASCAL's avatar
GUEHL PASCAL committed

GUEHL PASCAL's avatar
GUEHL PASCAL committed
On s’intéresse ici à l’étude des performances d’opérations élémentaires sur des structures de données dont les éléments sont des entiers. L’analyse se porte sur des collections d’éléments de type tableaux, listes, piles et arbres. Les opérations élémentaires consistent à ajouter un élément, supprimer un élément, ainsi que rechercher le minimum. On souhaite analyser la complexité de ces algorithmes sur les différentes structures de données par des mesures de performances temporelles, ceci en faisant varier la taille des données à traiter. La visualisation des graphiques résultants nous permettra d’analyser le comportement de ces structures de données par type d’algorithmes, notamment identifier des tendances d'évolutions particulières lorsque la taille des données à traiter augmente. Ceci nous permettra, dans le cadre d'une application concrète, de pouvoir prendre des décisions pertinentes lors du choix d’une structure de données parmi d’autres, selon un ensemble d’actions à effectuer, le but étant de sélectionner la structure la plus rapide.

GUEHL PASCAL's avatar
GUEHL PASCAL committed
## Dispositif expérimental
GUEHL PASCAL's avatar
GUEHL PASCAL committed

GUEHL PASCAL's avatar
GUEHL PASCAL committed
### Application
GUEHL PASCAL's avatar
GUEHL PASCAL committed

GUEHL PASCAL's avatar
GUEHL PASCAL committed
L’implémentation des structures de données et des algorithmes se fait avec le language Java sous Windows. On utilise d’une part des structures fournies par la classe Collections : ArrayDequeue, LinkedList et Stack. D’autre part, on utilise des implémentations personnelles d’arbres binaires de type Binary Search Tree et de listes chaînées, ici circulaires. Afin de généraliser les tests, on utilise une classe de base de type interface contenant les trois méthodes communes à analyser : add(), remove() et minimum(). On crée ensuite des classes wrappers encapsulant les classes de base Java. De même, nos deux classes personnelles BinaryTreeSearch et liste chaînée circulaire héritent de l’interface commune. Le diagramme UML ci-dessous illustre les classes Java de notre application.
GUEHL PASCAL's avatar
GUEHL PASCAL committed

GUEHL PASCAL's avatar
GUEHL PASCAL committed
![image](https://git.unistra.fr/p.guehl/s4x/-/raw/main/Images/UML_diagram.jpg)
GUEHL PASCAL's avatar
GUEHL PASCAL committed

GUEHL PASCAL's avatar
GUEHL PASCAL committed
[code source de l'application](chemin)
GUEHL PASCAL's avatar
GUEHL PASCAL committed

GUEHL PASCAL's avatar
GUEHL PASCAL committed
A partir des classes Java précentes, nous avons développé une application de mesures de performances appliquant chacun de nos opérations élémentaires (add(), remove(), minimum()) sur chacune des structures de données précédentes (tableaux, listes, piles et arbres). Les résultats sont exportés dans un fichier de données de type ".csv".
GUEHL PASCAL's avatar
GUEHL PASCAL committed

GUEHL PASCAL's avatar
GUEHL PASCAL committed
```
GUEHL PASCAL's avatar
GUEHL PASCAL committed
Description de l'application et des arguments
GUEHL PASCAL's avatar
GUEHL PASCAL committed
```

GUEHL PASCAL's avatar
GUEHL PASCAL committed
### Environnement de test
GUEHL PASCAL's avatar
GUEHL PASCAL committed

GUEHL PASCAL's avatar
GUEHL PASCAL committed
Description de la plateforme de test
```
Extrait pertinent de /proc/cpuinfo
```
GUEHL PASCAL's avatar
GUEHL PASCAL committed

GUEHL PASCAL's avatar
GUEHL PASCAL committed
### Description de la démarche systématique
GUEHL PASCAL's avatar
GUEHL PASCAL committed

GUEHL PASCAL's avatar
GUEHL PASCAL committed
Description de la démarche systématique et de l'espace d'exploration pour chaque paramètres.
GUEHL PASCAL's avatar
GUEHL PASCAL committed

GUEHL PASCAL's avatar
GUEHL PASCAL committed
```
Suite des commandes, ou script, à exécuter pour produire les données.
```
GUEHL PASCAL's avatar
GUEHL PASCAL committed

GUEHL PASCAL's avatar
GUEHL PASCAL committed
## Résultats préalables
GUEHL PASCAL's avatar
GUEHL PASCAL committed

GUEHL PASCAL's avatar
GUEHL PASCAL committed
### Temps d'exécution
GUEHL PASCAL's avatar
GUEHL PASCAL committed

GUEHL PASCAL's avatar
GUEHL PASCAL committed
| Jeu de test          | ICArrayDeque              | ICLinkedList              | ICStack                   | ICAutre |
|----------------------|---------------------------|---------------------------|---------------------------|---------|
| minimum              | ![plot](path/to/plot.png) | ![plot](path/to/plot.png) | ![plot](path/to/plot.png) |         |
| add                  | ![plot](path/to/plot.png) | ![plot](path/to/plot.png) | ![plot](path/to/plot.png) |         |
| remove               | ![plot](path/to/plot.png) | ![plot](path/to/plot.png) | ![plot](path/to/plot.png) |         |
GUEHL PASCAL's avatar
GUEHL PASCAL committed


GUEHL PASCAL's avatar
GUEHL PASCAL committed
### Analyse des résultats préalables
GUEHL PASCAL's avatar
GUEHL PASCAL committed

GUEHL PASCAL's avatar
GUEHL PASCAL committed
Explications précises et succinctes des résultats préalables.
GUEHL PASCAL's avatar
GUEHL PASCAL committed

GUEHL PASCAL's avatar
GUEHL PASCAL committed
Explicitation par un calcul de complexité certains résultats.
GUEHL PASCAL's avatar
GUEHL PASCAL committed

GUEHL PASCAL's avatar
GUEHL PASCAL committed
### Limites des résultats préalables et ouvertures
GUEHL PASCAL's avatar
GUEHL PASCAL committed

GUEHL PASCAL's avatar
GUEHL PASCAL committed
Explications précises et succinctes des limites des résultats
préalables et ce qu'ils ne permettent pas de vérifier. Quelles questions soulèvent ces résultats?
GUEHL PASCAL's avatar
GUEHL PASCAL committed

GUEHL PASCAL's avatar
GUEHL PASCAL committed
## Argumentaire
GUEHL PASCAL's avatar
GUEHL PASCAL committed

GUEHL PASCAL's avatar
GUEHL PASCAL committed
Vente de rêve à insérer ici