GitLab now enforces expiry dates on tokens that originally had no set expiration date. Those tokens were given an expiration date of one year later. Please review your personal access tokens, project access tokens, and group access tokens to ensure you are aware of upcoming expirations. Administrators of GitLab can find more information on how to identify and mitigate interruption in our documentation.
Notre but est de réaliser des tests de performance sur le temps d'éxecution et la mémoire utilisée selon la structure de données, la fonction testée, le nombre d’essais réalisés, et l'ordre de grandeur des éléments.
Il y a également deux options supplémentaires : une pour réaliser ou non un affichage, et l'autre pour donner l'ordre de grandeur des éléments du tableau. Je me suis rendue compte par la suite que l'affichage n'était utile que pour vérifié la validitée du code, je ne l'ai donc plus utilisé par la suite sans pour autant le supprimer au cas ou j'aurais besoin de tester une nouvelle structure de donnée.
Il y a également deux options supplémentaires : une pour réaliser ou non un affichage, et l'autre pour donner l'ordre de grandeur des éléments du tableau.
Paramètres :
- Le nombre d'essais (est attendu supérieur à 0)
- La fonction
- la structure
- l'option d'affichage
- l'option de l'ordre de grandeur
## Dispositif expérimental
### Application
[code source de l'application](chemin)
J'ai choisi de tester les classes ArrayList et LinkedList grâce à des fichiers en bash ainsi qu'à des classes de tests en Java.
Pour ce faire, j'ai réalisé une classe abstraite Structure comprenant les méthodes abstraites ajout en tête, en queue, suppression en tête, en queue, et recherche d'un nombre aléatoire parmi la structure.
Les méthodes de cette classe abstraite sont implémentées dans les classes de tests SArrayList et SLinkedList.
Enfin, une classe Main réalise les tests sur ces structures grâce aux paramètres qui lui sont fournis.
```
Paramètres :
- Le nombre d'essais (est attendu supérieur à 0)
...
...
@@ -48,6 +54,8 @@ L'option d'affichage :
1. Affiché
2. Ou autre que 1 : ne s'affiche pas.
```
Je me suis rendue compte par la suite que l'affichage n'était utile que pour vérifié la validitée du code en début de développement, je ne l'ai donc plus utilisé par la suite sans pour autant le supprimer au cas ou j'aurais besoin de tester une nouvelle structure de donnée.
```
L'option de définition de l'ordre de grandeur des éléments contenus dans la structure doit être supérieur à 1,
sinon l'application retourne à son ordre de grandeur par défault :1000.
...
...
@@ -55,7 +63,19 @@ sinon l'application retourne à son ordre de grandeur par défault :1000.
### Environnement de test
Description de la plateforme de test
J'ai testé les classes ArrayList et LinkedList grâce à des fichiers en bash ainsi qu'à des classes de tests en Java.
J'ai donc l'arborescence suivante:
```
Projet
-> p4a (dossier)
-> perf2.sh
-> perf3.sh
-> data.dat
```
```
Extrait pertinent de /proc/cpuinfo
```
...
...
@@ -94,29 +114,36 @@ préalables et ce qu'ils ne permettent pas de vérifier.
### Hypothèse
Expression précise et succincte d'une hypothèse.
Mon hypothèse :
### Protocole expérimental de vérification de l'hypothèse
Expression précise et succincte du protocole.
Pour refaire le jeu de test dans un fichier data.dat, enregistrer le dossier p4a et les fichiers perf2.sh et perf3.sh.
Ouvrez un terminal à l'emplacement des fichiers, et
Pour réaliser les graphiques en fonction de data.dat obtenu précédemment, il faudra enregistrer le fichier plot.sh au même endroit que data.dat.
Dans un terminal, il suffira d'écrire la commande ./plot.sh
Ouvrez un terminal à l'emplacement des fichiers, et écrivez la commande suivante:
```
./plot.sh
./perf3.sh | tee data.dat
```
*italique 1*
_italique 2_
Ajouter une structure de donnée
Pour réaliser les graphiques en fonction de data.dat obtenu précédemment, il faudra enregistrer le fichier plot.sh au même endroit que data.dat.
Dans un terminal, il suffira d'écrire la commande *./plot.sh*.
Enfin, vous obtiendrez les graphiques correspondants.
Suite des commandes, ou script, à exécuter pour produire les données.