|
|
il y a 5 ans | |
|---|---|---|
| .idea | il y a 5 ans | |
| out | il y a 5 ans | |
| src | il y a 5 ans | |
| Evaluation.md | il y a 5 ans | |
| P4a.iml | il y a 5 ans | |
| README.md | il y a 5 ans | |
| acceder_mem.png | il y a 5 ans | |
| acceder_mem_appro.png | il y a 5 ans | |
| acceder_tps.png | il y a 5 ans | |
| acceder_tps_appro.png | il y a 5 ans | |
| appronfondie.sh | il y a 5 ans | |
| fichier.txt | il y a 5 ans | |
| perf.dat | il y a 5 ans | |
| perf_hypothese.dat | il y a 5 ans | |
| plot.r | il y a 5 ans | |
| plot_approfondie.r | il y a 5 ans | |
| recherche | il y a 5 ans | |
| recherche.c | il y a 5 ans | |
| remplir_mem.png | il y a 5 ans | |
| remplir_mem_appro.png | il y a 5 ans | |
| remplir_tps.png | il y a 5 ans | |
| remplir_tps_appro.png | il y a 5 ans | |
| run.sh | il y a 5 ans | |
| supprimer_mem.png | il y a 5 ans | |
| supprimer_tps.png | il y a 5 ans |
Au cours du développement d'un programme en informatique, le collections comme Arraylist, hashmap ou encore vector sont souvent utilisées. Ainsi il convient de se demander lesquelles sont les plus appropriées pour certaines opérations.
Comme dit précédemment, l'étude portera sur les arraylist, hasmap et vector. Les opérations étudiées sont :
Pour lancer l'application : java -jar P4a.jar <strucutre> <operation> <nombre_occurrence>
Description de l'application et des arguments
structure :
arraylist
array
hashmap
operation :
remplir
supprimer
acceder
nombre_occurrence : le nombre d'éléments à traiter
Les opérations supprimer et acceder procèdent d'abord à un remplissage.
Description de la plateforme de test
Description processeur (lscpu) :
Architecture : x86_64
Mode(s) opératoire(s) des processeurs : 32-bit, 64-bit
Boutisme : Little Endian
Tailles des adresses: 46 bits physical, 48 bits virtual
Processeur(s) : 40
Liste de processeur(s) en ligne : 0-39
Thread(s) par cœur : 2
Cœur(s) par socket : 10
Socket(s) : 2
Nœud(s) NUMA : 2
Identifiant constructeur : GenuineIntel
Famille de processeur : 6
Modèle : 79
Nom de modèle : Intel(R) Xeon(R) CPU E5-2630 v4 @ 2.20GHz
Révision : 1
Vitesse du processeur en MHz : 1498.682
Vitesse maximale du processeur en MHz : 3100,0000
Vitesse minimale du processeur en MHz : 1200,0000
Description ram (free -h) :
total
Mem: 125Gi
Swap: 127Gi
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.
./run.sh | tee perf.dat pour la production des données
r plot.r pour le traitement des données et la production des graphiques
On observe des différences de temps et de consommation mémoire entre les différents graphiques.
Pour le temps d'exécution, on remarque que pour l'opération de suppression, la hashmap est très rapide et que peu importe le nombre d'éléments son temps d'exécution reste globalement le même, les structures arraylist et vector ont, elles, des temps d'exécution qui deviennent de plus en plus importants plus la taille augmente, leurs temps sont aussi similaires. Pour l'opération accéder, on remarque que les temps d'exécution entre l'arraylist et le vector sont similaires et augmentent peu contrairement à la hashmap. Quant à l'opération remplir, l'arraylist reste relativement au même temps d'exécution, on observe une augmentation du temps d'exécution chez le vector est la hashmap, cepedant cette augmentation est plus importante chez la hashmap. En terme de temps d'exécution on observe donc que l'arraylist est une structure offrant des temps faibles quant à l'accès et au remplissage
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.
Expression précise et succincte d'une hypothèse.
Expression précise et succincte du protocole.
Suite des commandes, ou script, à exécuter pour produire les données.