P4a : Analyse de performances de différentes structures
Problème
Description du Problème:
C’est la comparaison des performances de différentes structures de données et différentes implantations, pour différentes opérations, en termes de consommation CPU et de consommation mémoire. Dans notre cas, l'objectif sera donc de comparer les performances de différentes opérations pour différentes implémentations de l'interface List.
Description de tous les paramètres exploratoires du problème:
Les paramètres modifiables seront:
- Le choix de la structure
- Le choix de l'opération à éxecuter
- Le nombre de répétion de l'opération choisi
- La taille de la structure
Dispositif expérimental
Plan de travail:
Tout d'abord, l'objectif sera de faire de simples comparaisons sur les temps d'exécutions (et ressources utilisées) des opérations entre deux implémentations de l'interface List. Nous prendrons ici les classes ArrayList et LinkedList et travaillerons en Java. Suite à cela, nous créerons notre propre implémentation de List, nottament une classe qui reprendra le concept de tableau. L'implémentation de l'interface List pour une classe utilisant un tableau peut, à première vue, sembler étrange, mais cela nous permettra de tester cette classe de la même manière que toutes les autres, et ce, de manière simplifiée.
Organisation objet
note: gerer les tableaux sans debordements. (-> ArrayList se comporte comme un simple tableau)
Description de l'organisation des classes et interfaces, ou diagramme de classes:
Application
Description de l'application et des arguments
Environnement de test
Description de la plateforme de test
Extrait pertinent de /proc/cpuinfo
Description de la démarche systématique
Description de la démarche systématique et de l'espace d'exploration pour chaque paramètres.
Suite des commandes, ou script, à exécuter pour produire les données.
Résultats préalables
Temps d'exécution
Consommation mémoire
Analyse des résultats préalables
La mémoire se comporte exactement pareil sur les 4 versions. Les temps d'exécutions dépendent essentiellement de l'affichage des valeurs du tableau. La version 2 de recherche semble un peu plus rapide.
Discussion des résultats préalables
Explications précises et succinctes sur ce que les limites des résultats préalables et ce qu'ils ne permettent pas de vérifier.
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.