P4a : Analyse de performances de différentes structures
Problème
Le problème visé est celui des performances sur les opérations de bases pour des implémentations maisons des listes chaînées, tableaux et vecteurs.
Les différents paramètres exploratoires seront exportés en graphes grâce à R. De plus ces différents paramètres seront des opérations de base, insertion, suppression, recherche..
La liste chaînée sera testée sur : l'insertion, la suppression et l'accès. Le tableau sera testé sur : le remplacement, la suppression et l'accès. Les Vecteurs seront testés sur : l'addition, la multiplication et la division.
Dispositif expérimental
Les membres du dispositif experimentals sont les listes chainées, les tableaux, et les vecteurs. Tous codés en C++. Ils seront analysés en concurrence contre leurs homologues de la STD.
Le dispositif mis en place, est le suivant: Les structures demandées (Listes chainées, tableaux, vecteurs) seront implémentées, testées, et enfin profilées.
Nos résultats seront plus précis a partir d'un certain nombre de tests, cependant, trop de tests seraient inutiles. Une borne maximale est alors, pour le moment, fixée à 100 000 tests de la même fonction.
Les tests vont varier selon plusieurs paramètres :
Une autre variation attendue, est celle de la taille pour les listes chaînées, et également pour les tableaux. En effet, un accès à une valeur dans une liste de 100 000 éléments n'aura sans doute pas le même impact de performances qu'un accès sur une liste à 3 éléments.
Il y aura également des tests sans variation, en effet, la machine peut varier en terme de performances d'un test à l'autre.
Et pour finir, les tests sur les vecteurs vont varier en fonction de leurs valeurs attribuées. Ces valeurs seront croissantes durant les différents tests, afin d'étudier leur impact sur les performances.
Grâce à ce nombre de variation, nous pourrons nous permettre de comparer nos classes, contre celles de la std.
Organisation objet
Diagramme de l'organisation des classes et interfaces. Toutes ces classes utilisent le template ansi que Container.
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.