Skip to content
Snippets Groups Projects
Commit 7ce9b64a authored by MARCHAL BENJAMIN's avatar MARCHAL BENJAMIN
Browse files

Fin Readme + nettoyage et fixe

parent a0894131
Branches master
No related merge requests found
...@@ -3,11 +3,11 @@ ...@@ -3,11 +3,11 @@
[Grille d'évaluation P4a](https://docs.google.com/spreadsheets/d/1x72glVEQHPx56Wr8G0RNQgfQXGX6xCsjms_6b7J6si0/edit?usp=sharing [Grille d'évaluation P4a](https://docs.google.com/spreadsheets/d/1x72glVEQHPx56Wr8G0RNQgfQXGX6xCsjms_6b7J6si0/edit?usp=sharing
) )
## Groupe ## Groupe
* BOCH Antoine * BOCH Antoine
* MARCHAL Benjamin * MARCHAL Benjamin
## Problème ## Problème
...@@ -25,7 +25,7 @@ Notre programme nous permet donc de tester plusieurs variantes afin de détermin ...@@ -25,7 +25,7 @@ Notre programme nous permet donc de tester plusieurs variantes afin de détermin
Pour réaliser ces observations j'ai donc choisi trois types de structure: Pour réaliser ces observations j'ai donc choisi trois types de structure:
* ArrayList * ArrayList
* LinkedList * LinkedList
* Vector * Vector
...@@ -44,11 +44,15 @@ De plus, le nombre d'itérations de la valeur ajoutée et la taille de la struct ...@@ -44,11 +44,15 @@ De plus, le nombre d'itérations de la valeur ajoutée et la taille de la struct
[Code source de l'application](https://git.unistra.fr/antoine.boch/P4a/-/blob/master/src/Main.java) [Code source de l'application](https://git.unistra.fr/antoine.boch/P4a/-/blob/master/src/Main.java)
```
Usage : java Program "Structure" "Test" <Occurence> <TailleStruct>
```
#### Description de l'application et des arguments #### Description de l'application et des arguments
L'application permet d'effectuer plusieurs tests sur différentes structures de données. Ces tests sont notamment diverses opérations effectuées un certain nombre de fois. L'application permet d'effectuer plusieurs tests sur différentes structures de données. Ces tests sont notamment diverses opérations effectuées un certain nombre de fois.
En ce qui concerne les arguments, on prend en compte : En ce qui concerne les arguments, on prend en compte :
1. Le type de la structure utilisée 1. Le type de la structure utilisée
* ArrayList * ArrayList
...@@ -78,6 +82,10 @@ Cache size : 20480 KB ...@@ -78,6 +82,10 @@ Cache size : 20480 KB
Description de la démarche systématique et de l'espace d'exploration pour chaque paramètres. Description de la démarche systématique et de l'espace d'exploration pour chaque paramètres.
```
./test.sh |tee results.dat
-> le script R se lance à la fin du bash.
```
[Script Test.sh](https://git.unistra.fr/antoine.boch/P4a/-/blob/master/Tests.sh) [Script Test.sh](https://git.unistra.fr/antoine.boch/P4a/-/blob/master/Tests.sh)
...@@ -111,7 +119,7 @@ Donc pour l'instant, en utilisant les **Integer,** la **LinkedList** est la plus ...@@ -111,7 +119,7 @@ Donc pour l'instant, en utilisant les **Integer,** la **LinkedList** est la plus
### Discussion des résultats préalables ### Discussion des résultats préalables
Actuellement les résultats précédents permettent de voir graphiquement de grandes différences de temps d'exécutions et des légères différences dans les **consommations de mémoires**, mais si l'on ré-exécute le programme à nouveau on pourrait tomber sur d'autres résultats (changements de quelques microsecondes). Actuellement les résultats précédents permettent de voir graphiquement de grandes différences de temps d'exécutions et des légères différences dans les **consommations de mémoires**, mais si l'on ré-exécute le programme à nouveau on pourrait tomber sur d'autres résultats (changements de quelques microsecondes).
De plus ces tests n'ont pas de comparatifs avec d'autres utilisations de types, on utilise que des **Integer**. De plus ces tests n'ont pas de comparatifs avec d'autres utilisations de types, on utilise que des **Integer**.
Enfin, les méthodes sur ces structures ne sont pas si variées et n'utilisent principalement que l'ajout d'éléments. Il faudrait aussi faire des tests avec l'accès aux données et la suppression sans ajouts avant. Enfin, les méthodes sur ces structures ne sont pas si variées et n'utilisent principalement que l'ajout d'éléments. Il faudrait aussi faire des tests avec l'accès aux données et la suppression sans ajouts avant.
Ces résultats permettent néanmoins de donner une première image de ces structures, mais ne permettent pas de rééllement dire que telle structure est plus optimisée, à part pour certaines tâches. Ces résultats permettent néanmoins de donner une première image de ces structures, mais ne permettent pas de rééllement dire que telle structure est plus optimisée, à part pour certaines tâches.
...@@ -124,13 +132,22 @@ Dans l'analyse précédente on a vu comment réagissaient les différentes struc ...@@ -124,13 +132,22 @@ Dans l'analyse précédente on a vu comment réagissaient les différentes struc
### Protocole expérimental de vérification de l'hypothèse ### Protocole expérimental de vérification de l'hypothèse
```
./testAnalyse.sh | tee resultsAnalyse.dat
cd graph
./prefAnalyse.R
```
**Remarque :** Il faut penser a prendre la classe ArrayListl2
[Script Test.sh](https://git.unistra.fr/antoine.boch/P4a/-/blob/master/Tests.sh) [Script Test.sh](https://git.unistra.fr/antoine.boch/P4a/-/blob/master/Tests.sh)
**Script sh** qui met en place chaque paramètre et appel les fonctions du programme java, pour sortir le temps d'exécution, l'utilisation de la mémoire, le nombre d'itérations et les tailles de structures, dans un fichier "result.dat". Appelé avec la commande : **./Tests.sh | tee results.dat ** dans le dossier P4a. **Script sh** qui met en place chaque paramètre et appel les fonctions du programme java, pour sortir le temps d'exécution, l'utilisation de la mémoire, le nombre d'itérations et les tailles de structures, dans un fichier "result.dat". Appelé avec la commande : **./testAnalyse.sh | tee resultsAnalyse.dat ** dans le dossier P4a.
Puis, appel du **script R** via la commande **./cmdR.R** dans le dossier graphs accessible via **cd graph**, pour exploiter les résultats du fichier "result.dat" graphiquement. Puis, appel du **script R** via la commande **./prefAnalyse.R** dans le dossier graphs accessible via **cd graph**, pour exploiter les résultats du fichier "result.dat" graphiquement.
[Script Cmd.R](https://git.unistra.fr/antoine.boch/P4a/-/blob/master/graphs/cmdR.R) [Script prefAnalyse.R](https://git.unistra.fr/antoine.boch/P4a/-/blob/master/graphs/prefAnalyse.R)
## Résultats expérimentaux ## Résultats expérimentaux
......
#!/usr/bin/Rscript --slave
library(ggplot2)
perf <- read.table("../resultsAnalyse.dat", header = TRUE)
ggplot(perf,aes(x=occu, y=temps, color=struct))+
geom_point()+geom_smooth()+
ggtitle("Le temps sur les opérations ")+
xlab("Occurence")+
ylab("Temps")+
facet_grid(rows=vars(struct),cols=vars(test))
ggsave("allComparaisonTimeAnalyse.png")
ggplot(perf,aes(x=occu, y=memoire, color=struct))+
geom_point()+geom_smooth()+
ggtitle("La mémoire prise par les opérations ")+
xlab("Occurence")+
ylab("Memoire")+
facet_grid(rows=vars(struct),cols=vars(test))+
ylim(0,100000)
ggsave("allComparaisonMemoireAnalyse.png")
\ No newline at end of file
struct sType test occu temps memoire
ArrayList 50000 addT 5000 0.08 54000
ArrayList 50000 addT 250000 0.12 57592
ArrayList 50000 addT 500000 0.12 65644
ArrayList 50000 addQ 5000 0.06 50980
ArrayList 50000 addQ 250000 0.11 57612
ArrayList 50000 addQ 500000 0.11 63676
ArrayList 50000 Delete 5000 0.06 50832
ArrayList 50000 Delete 250000 0.11 57696
ArrayList 50000 Delete 500000 0.13 65748
ArrayList 250000 addT 5000 0.07 48800
ArrayList 250000 addT 250000 0.09 59180
ArrayList 250000 addT 500000 0.15 67340
ArrayList 250000 addQ 5000 0.10 56104
ArrayList 250000 addQ 250000 0.10 55444
ArrayList 250000 addQ 500000 0.11 63968
ArrayList 250000 Delete 5000 0.06 49116
ArrayList 250000 Delete 250000 0.11 58484
ArrayList 250000 Delete 500000 0.12 65880
ArrayList 500000 addT 5000 0.07 55908
ArrayList 500000 addT 250000 0.11 57564
ArrayList 500000 addT 500000 0.11 57524
ArrayList 500000 addQ 5000 0.07 50916
ArrayList 500000 addQ 250000 0.11 62708
ArrayList 500000 addQ 500000 0.09 59732
ArrayList 500000 Delete 5000 0.06 48912
ArrayList 500000 Delete 250000 0.11 62712
ArrayList 500000 Delete 500000 0.11 57568
#!/bin/bash
type[0]="ArrayList"
sizeType[0]=100000
sizeType[1]=500000
sizeType[2]=1000000
occurrence[0]=100000
occurrence[1]=500000
occurrence[2]=1000000
operationType[0]="addT"
operationType[1]="addQ"
operationType[2]="Delete"
#type = $1 (type)
#size = $4 taille de la (sizetype)
#operation = $2 (operationType)
#opSize = $3 (occu)
cd src
test(){
echo -n "$1 $4 $2 $3 " 2>&1
/usr/bin/time -f"\t%U\t%M" java Program $1 $2 $3 $4 2>&1
}
echo "struct sType test occu temps memoire" 2>&1
for sType in ${sizeType[*]}; do
for test in ${operationType[*]}; do
for occu in ${occurrence[*]}; do
for struct in ${type[*]}; do
test $struct $test $occu $sType
done
done
done
done
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment