# P4a : Analyse de performances de différentes structures

[Grille d'évaluation P4a](https://docs.google.com/spreadsheets/d/1x72glVEQHPx56Wr8G0RNQgfQXGX6xCsjms_6b7J6si0/edit?usp=sharing
)

## Problème

Description du Problème.

Description de tous les paramètres exploratoires du problème

## Dispositif expérimental

### Application

[code source de l'application](../performance_P4A.exe)
```
Description de l'application et des arguments

L'application vise à observer la différence de performance pour l'ajout, la suppression et le test de contenance entre les ArrayList et les LinkedList. Il y a 3 arguments :
- le type de donnée (tableau ou liste chainée)
- l'opération (add, del et contains)
- le nombre d'opération à éffectuer

on peut aussi faire varier le type utilisé pour stocker la taille des tableaux : int ou Integer
le nombre d'élément : 10 et 1 000 000 par ex
nombre d'opérations : de 1 000 à 1 000 000 (nombre d'exec du test)

On va mesurer le temps d'éxécution et l'utilisation mémoire en fonction des paramètres
```



### Environnement de test
```
Description de la plateforme de test

cpu family	: 6

model		: 63

model name	: Intel(R) Xeon(R) CPU E5-2630L v3 @ 1.80GHz

stepping	: 2

microcode	: 0x31

cpu MHz		: 1209.045

cache size	: 20480 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.

```
Suite des commandes, ou script, à exécuter pour produire les données.


```

[Code du script](../script.sh)

## Résultats préalables

### Temps d'exécution

| Opération            | Tableau                   | Liste chaînée             |                           |
|----------------------|---------------------------|---------------------------|---------------------------|
| Insertion            | ![plot](../images/Temps/listeAjout.png) | ![plot](../images/Temps/listeChaineAjout.png) | ![plot](../images/Temps/liste+listeChaineeAjout.png) |
| Accès                | ![plot](../images/Temps/listeAcces.png) | ![plot](../images/Temps/listeChaineeAcces.png) | ![plot](../images/Temps/liste+listeChaineeAcces.png) |


### Consommation mémoire

| Opération            | Tableau                   | Liste chaînée             |                           |
|----------------------|---------------------------|---------------------------|---------------------------|
| Insertion            | ![plot](../images/Memoire/listeAjout.png) | ![plot](../images/Memoire/listeChaineeAjout.png) | ![plot](../images/Memoire/liste+listeChaineeAjout.png) |
| Accès                | ![plot](../images/Memoire/listeAcces.png) | ![plot](../images/Memoire/listeChaineeAcces.png) | ![plot](../images/Memoire/liste+listeChaineeAcces.png) |


### Analyse des résultats préalables

Explications précises et succinctes des résultats préalables.

Pour le temps : 
Peu de différences entre les listes et les listes chainées pour l'accès. Pour l'ajout, on a un écart qui s'aggrandit lorsqu'on monte le nombre d'ittérations.

Poue la mémoire :
L'utilisation de mémoire est beaucoup plus importante pour la liste chainee.

### 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.

La vameur de l'accès peut être plus hautre que ce qu'elle est censé être car nous avons du préalablement remplis la liste.

## Etude approfondie

### Hypothèse

Expression précise et succincte d'une hypothèse.

La liste chainee comsomme beaucoup plsu de mémoire mais est beaucoup plus rapide.

### 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