diff --git a/histogramme.png b/histogramme.png new file mode 100644 index 0000000000000000000000000000000000000000..8236ec17887d655b4695f504ae95518b08e037be Binary files /dev/null and b/histogramme.png differ diff --git a/load_factors.png b/load_factors.png index 4314148fe38ac99ad3136267a0740cfeaafb20b2..eac5f2b1596701952c291bfb403d091cbfc2918e 100644 Binary files a/load_factors.png and b/load_factors.png differ diff --git a/num_resizes.png b/num_resizes.png index 846f39d8f2c0255ec76af8f9b78fac75d6edaa1a..4d9a4251189e3cda56171ea4712880874182038e 100644 Binary files a/num_resizes.png and b/num_resizes.png differ diff --git a/sizes.png b/sizes.png index 414e469226715ced5daf9bab97675995d7130c90..8405500515630c27aef2d27a84e77514242310ac 100644 Binary files a/sizes.png and b/sizes.png differ diff --git a/tp_2_miso_dict.py b/tp_2_miso_dict.py index 0802d4b6ae319357b25a3c23b1ee46cc522530a9..df85f45aba73b8c1019e1064e63ff7902266cb3b 100644 --- a/tp_2_miso_dict.py +++ b/tp_2_miso_dict.py @@ -17,27 +17,32 @@ def experiment_load_factor(load_factors): Étude du facteur de charge """ insertion_times=[] - nombre_reallocations = [] - taille_memoire = [] - set_kmer = {str(i) for i in range(10)} - for factors in load_factors : + num_resizes = [] + sizes = [] + + for factor in load_factors : + d = {} - taille = sys.getsizeof(d) - nbre_realloc = 0 - times = [] - for kmer in set_kmer: - start_time = time.perf_counter() - d[kmer] = 0 - stop_time = time.perf_counter() - times.append(stop_time-start_time) - if taille < sys.getsizeof(d) : - taille = sys.getsizeof(d) - nbre_realloc += 1 - taille_memoire.append(taille) - nombre_reallocations.append(nbre_realloc) - insertion_times.append(mean(times)) - - return insertion_times, nombre_reallocations, taille_memoire + num_elements = int(factor*1000) + count_resize = 0 + last_size = sys.getsizeof(d) + start_time = time.perf_counter() + + for i in range(num_elements): + d[i]=i + current_size=sys.getsizeof(d) + + if current_size > last_size: + count_resize += 1 + last_size = current_size + + stop_time = time.perf_counter() # Temps d'insertion + insertion_times.append(stop_time-start_time) + + num_resizes.append(count_resize) + sizes.append(last_size) + + return insertion_times, num_resizes, sizes def experiment_longest(): """ @@ -103,7 +108,7 @@ def visualisation(load_factors, insertion_times, num_resizes, sizes, frequencies plt.savefig("sizes.png") # Deuxième étude - f = list() + f = list(frequencies) plt.figure(figsize=(10, 6)) plt.bar(range(len(f)), f) plt.xlabel('Temps d\'insertion (s)')