P4a : Analyse de performances de différentes structures
Groupe Promesse : Composé de Léa REJOU & Samuel LADWEIN.
Problème
Description du Problème:
Lors de la création d'une application, toutes sortes de collection d'objet peuvent être utilisé. Tel que des Liste, Liste chainée, doublement chainée, tableau, dictionnaire etc..
Une question se pose tout de même c'est structure sont tel équivalente en terme d'utilisation de la mémoire ou vitesse d'exécution.
Nous allons donc dans le cadre de ce projet implémenté nos propres structures et comparer leurs performances avec celle déjà implémenté dans le langage séléctionné. Description de tous les paramètres exploratoires du problème: 4 paramètres peuvent fluctuer dans ce projet: - Le type de la structure: ArrayListPerso, Array.. - Le type d'opération: ajouter, supprimer - La taille de la structure - Le nombre d'opération Nous pourrons donc fortement jouer sur les deux derniers paramètres mais les deux premiers restent fixe. En effet seul les structures ou opérations implémentées pourront être tester.
Dispositif expérimental
Le langage utilisé sera le JAVA !
Organisation objet
Application
L'application contient deux packages. Un premier avec nos propres implémentations
et un deuxième avec les implémentations Java normale permettant ainsi de lancer
l'opération que l'on veut effectuer et le type de structure. Les arguments
nécéssaires sont un type que l'on veut manipuler, l'opération que l'on veut lancer,
la taille de la structure de base, le nombre d'opérations et si le type appartient a Java ou non.
Environnement de test
Description de la plateforme de test
processor : 1
vendor_id : GenuineIntel
cpu family : 6
model : 42
model name : Intel(R) Celeron(R) CPU B815 @ 1.60GHz
stepping : 7
cpu MHz : 1596.388
cache size : 2048 KB
MemTotal: 7991376 kB
Description de la démarche systématique
Description de la démarche systématique et de l'espace d'exploration pour chaque paramètres.
./test.sh
./plot.R
et pour avoir les structures java il faut rajouter dans le test.sh a la ligne 13 après $nbOp un java
Résultats préalables
Temps d'exécution
Consommation mémoire
Analyse des résultats préalables
Quelque soit l'opération, la mémoire se comporte de la même manière. Elle augmente selon la taille de la strucure. Les temps d'exécutions possèdent le même comportement que la mémoire.
Discussion des résultats préalables
Le comportement parrait étrange et pas forcément représentatif de la réalité car les courbes se comportent de la même manière quelque soit l'opération.
Etude approfondie
Hypothèse
Expression précise et succincte d'une hypothèse.
Protocole expérimental de vérification de l'hypothèse
Expression précise et succincte du protocole.
Suite des commandes, ou script, à exécuter pour produire les données.
Résultats expérimentaux
Analyse des résultats expérimentaux
Discussion des résultats expérimentaux
Conclusion et travaux futurs
Le R à été un langage très compliqué à prendre en main et à été très chronophage pour nous. Grâce à nos résultats expérimentaux nous pouvons maintenant retravailler le code pour avoir des courbes plus fidèles a la réalité.