P4a : Analyse de performances de différentes structures
Problème
Langage utilisé
Nous avons choisi d'utiliser le langage Java car il est plus adapté à notre organisation.
Description du problème
Analyse de performance de deux structures, faisant la même chose, 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
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)
Organisation du projet
Dispositif expérimental
Organisation objet
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
- 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
- Comment améliorer la performance des deux structures
- Déterminer la classe de compléxité des structures
Suite des commandes, ou script, à exécuter pour produire les données.