Skip to content
Snippets Groups Projects
user avatar
haquin elouan authored
0caeff9b
Forked from GOSSA JULIEN / P4a
10 commits ahead of the upstream repository.
Name Last commit Last update
UML
Evaluation.md
Projet.md
README.md
recherche.c

P4a : Analyse de performances de différentes structures

Grille d'évaluation P4a

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.

###Listes chainées :

LinkedList

###Tableau :

tableau

###Vecteurs 3D :

Vecteur3D

Application

code source de l'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

plot

Consommation mémoire

plot

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.

Résultats expérimentaux

Analyse des résultats expérimentaux

Discussion des résultats expérimentaux

Conclusion et travaux futurs