@@ -19,7 +19,7 @@ Ecrivez vos réponses et commentaires dans ce document.
Puis décommenter `compare_taille` à la fin et expliquer les résultats.
On observe sur le graphe obtenu, que la taille de la table de hachage du dictionnaire augmente par paliers, alors que celle de la MPHf augmente de manière linéraire, et beaucoupu plus progressivement.
Cela est cohérent, en effet le dictionnaire va allouer un certain espace supplémentaire dès que le nombre d'éléments atteint un seuil, d'ou l'augmentation par paliers.
Cela est cohérent, en effet le dictionnaire va allouer un certain espace supplémentaire dès que le nombre d'éléments atteint un seuil, d'où l'augmentation par paliers.
Quant à la MPHF, elle minimise la mémoire en évitant les collisions, et en recréant à chaque implémentation, une nouvelle table de hachage avec la taille exactement adaptée au nombre d'éléments.
Bonus : faites varier `nb_niveaux` et `gamma`, voyez quelle influence ils peuvent avoir.
...
...
@@ -71,3 +71,11 @@ Cette fonction renvoie la fréquence des temps d'insertion dans un dictionnaire,
- Un histogramme des fréquences des temps d'insertions discrétisés (code fourni, remplacer la liste vide par la bonne entrée)
10. Commentez vos résultats.
- Le nombre de réallocations de mémoire augmente en fonction du facteur de charge, d'abord linéairement puis plutôt par paliers.
Cela est cohérent avec le graphe généré partie 1, car le dictionnaire va allouer un certain espace supplémentaire dès que le nombre d'éléments atteint un seuil.
- En conséquence, la variation de la taille de mémoire occupée en fonction du nombre d'éléments suit la même variation, linéaire au début puis par paliers.
- Le temps d'insertion en fonction du facteur de charge diminue fortement lorsque le facteur de charge augmente au début, puis les variations sont plus faibles.
Cette tendance semble cohérente, hormis une réaugmentation à 0.6 : au début, le dictionnaire est vide, et l'ajout d'éléments est rapide. La réaugmentation est peut-être due à des réallocations de mémoire qui ralentissent certaines insertions.
- La distribution des temps d'insertion sur l'histogramme est très asymétrique : une majorité d'insertions se font très rapidement, tandis que quelques valeurs semblent avoir des temps d'insertion plus longs.
Cela s'explique peut-être par des réallocations de mémoire ponctuelles qui allongent le temps d'insertion à certains moments.