From cfe614bcd47c63435e0ca9ba539637b55df680a3 Mon Sep 17 00:00:00 2001 From: HEYD CLOE <cloe.heyd@etu.unistra.fr> Date: Thu, 18 Mar 2021 14:30:37 +0000 Subject: [PATCH] Update README.md --- README.md | 41 +++++++++++++++++++++++++++++------------ 1 file changed, 29 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 6e06052..43ac675 100644 --- a/README.md +++ b/README.md @@ -10,36 +10,51 @@ Nous avons choisi d'utiliser le langage Java car il est plus adapté à notre or **Description du problème** -Analyse de performance de deux structures, faisant la même chose, mais fonctionnant différemment. +Analyse de performance de quatre structures identiques contenant des nombres mais fonctionnant différemment. -Deux paramètres au démarrage : -- Valeur que l'on veut trouver dans chaque tableau -- Nombre de valeurs dans chaque tableau : - - Chaque tableau génère x nombres aléatoires. De plus, nous indiquons le nombre que l'on veut trouver, qui doit être trouvé dans chaque tableau. Ainsi, le code nous renverra l’indice qui correspond à l’endroit où la valeur voulue se trouve dans le tableau et nous aurons un résultat correspondant à l'indice de la valeur trouvée dans chaque tableau +Nous aurons plusieurs paramètres au démarrage : +- Nombre de valeurs dans chaque tableau : chaque structure a une taille fixe de un million d'éléments générés aléatoirement. +- Nombre d'opérations : à chaque test, on augmente le nombre d'opérations de 100. Le nombre d'opérations varie de 100 à 5000. +- Type de l'opération : AddTete, AddQueue, RemoveTete, RemoveMiddle ou Get. +- Type de structure : nous utilisons des structures déjà existante (ArrayList, LinkedList, Table) et que nous avons créées nous-même (ChainedList composée de Link et d'un Cursor). Contrainte : il faut de l’abstraction, et au moins un tableau ET une liste chaînée (Maillons) **Description des paramètres exploratoires du problème** -- Analyser la différence de performance sur des opérations simples dans chaque structure (Inserer, Supprimer) +- Analyser la différence de temps d'éxécution CPU et de consommation de mémoire sur des opérations simples dans chaque structure (insérer, supprimer, sélectionner). **Organisation du projet** - ## Dispositif expérimental ### Organisation objet -Description de l'organisation des classes et interfaces, ou diagramme de classes. +**Description de l'organisation des classes et interfaces** + +Nous avons utilisé trois packages différents : +- Un pour les structures déjà existantes, StandardStructure : ArrayList, LinkedList et Table. +- Un pour celle que nous avons créée, PersonalStructure : ChainedList et ses composants, Link et Cursor. +- Un pour ce qui est commun aux deux packages précédents, defaultpackage : Main et Structure. + +Pour les structures déjà existantes, nous avons préféré recréer une classe wrapper pour chacune d'entre elles afin de personnaliser les fonctions que nous voulions tester et adapter leur fonctionnement à chaque structure. + +**Diagramme de classes** + + ### Application -[code source de l'application](chemin) -``` -Description de l'application et des arguments -``` +[code source de l'application](/Main.jar) + +**Description de l'application et des arguments** + +Pour utiliser notre application, il faut lui passer plusieurs paramètres dans l'ordre suivant : le type de structure que l'on souhaite évaluer, le nombre de valeurs (un million), la méthode que l'on va évaluer et le nombre d'opérations. + +Le Main va ensuite créer une structure en fonction des paramètres qu'on lui a passé et la remplir de nombres aléatoires. Il va ensuite appeler la fonction choisie en utilisant un switch. + ### Environnement de test @@ -85,6 +100,8 @@ Expression précise et succincte d'une hypothèse. ### Protocole expérimental de vérification de l'hypothèse +Ainsi, le code nous renverra l’indice qui correspond à l’endroit où la valeur voulue se trouve dans le tableau et nous aurons un résultat correspondant à l'indice de la valeur trouvée dans chaque tableau + - Temps d'exécution des deux programmes (et leur différence) - Types de recherche de chaque programme (une standard et une recherche dichotomique) - Comment le “Random†influe sur la performance des structures -- GitLab