Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
T
TP2_Sania_Ayat_SD
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Ayat Chergui
TP2_Sania_Ayat_SD
Commits
e6baa742
Commit
e6baa742
authored
2 months ago
by
Ayât Chergui
Browse files
Options
Downloads
Patches
Plain Diff
fini
parent
368f0ddc
Branches
Branches containing commit
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
TP2_hachage/tp_2_miso_dict.py
+40
-15
40 additions, 15 deletions
TP2_hachage/tp_2_miso_dict.py
with
40 additions
and
15 deletions
TP2_hachage/tp_2_miso_dict.py
+
40
−
15
View file @
e6baa742
...
...
@@ -2,6 +2,7 @@ import matplotlib.pyplot as plt
import
numpy
as
np
import
time
import
sys
import
math
#test modif du push après peripétie
...
...
@@ -15,24 +16,30 @@ def experiment_load_factor(load_factors): #= load_factor = liste de facteur de c
num_resizes
=
[]
sizes
=
[]
for
i
in
load_factors
:
dic
t
=
{}
for
i
in
load_factors
:
dic
o
=
{}
num_elements
=
0
#nombre d'élement dans table
num_resize
=
0
#taille dico
last_size
=
sys
.
getsizeof
(
dic
t
)
#taile dico après insertion
start_time
=
time
.
time
()
# tps avant insertion
last_size
=
sys
.
getsizeof
(
dic
o
)
#taile dico après insertion
insertion_per_factor
=
[]
while
num_elements
<
load_factors
:
#remplie table tant que taille attendue par facteur de charge pas atteint
dict
[
num_elements
]
=
num_elements
num_elements
=+
1
last_size
=
sys
.
getsizeof
(
dict
)
num_resize
=+
1
#on ajoute 1 élement donc 1 position en +
end_time
=
time
.
time
()
#temps fin insertion
insertion_times
.
append
(
end_time
-
start_time
)
#temps totale
while
num_elements
<
(
i
*
100
):
#remplie table tant que taille attendue par facteur de charge pas atteint
start_time
=
time
.
perf_counter
()
dico
[
num_elements
]
=
num_elements
end_time
=
time
.
perf_counter
()
insertion_per_factor
.
append
(
end_time
-
start_time
)
#temps totale
num_elements
+=
1
current_size
=
sys
.
getsizeof
(
dico
)
if
current_size
>
last_size
:
last_size
=
current_size
num_resize
+=
1
#on ajoute 1 élement donc 1 position en +
insertion_times
.
append
(
np
.
mean
(
insertion_per_factor
))
sizes
.
append
(
last_size
)
#on ajoute la nouvelle taille dans la liste
num_resizes
.
append
(
num_resize
)
#nouvelle table
print
(
insertion_times
)
return
insertion_times
,
num_resizes
,
sizes
def
experiment_longest
():
"""
...
...
@@ -59,13 +66,31 @@ def visualisation(load_factors, insertion_times, num_resizes, sizes, frequencies
Visualisation des résultats
"""
# Temps d'insertion en fonction du facteur de charge
plt
.
figure
(
figsize
=
(
10
,
6
))
plt
.
bar
(
load_factors
,
insertion_times
,
width
=
0.01
,
label
=
"
insertion_time
"
,
color
=
'
blue
'
)
plt
.
xlabel
(
'
load factor
'
)
plt
.
ylabel
(
'
Temps d
\'
inserstion
'
)
plt
.
title
(
'
Histogramme du temps des insertions en fonction des facteurs de charge
'
)
plt
.
savefig
(
'
histogramme 7A
'
)
# Nombre de réallocations de mémoire en fonction du facteur de charge
plt
.
figure
(
figsize
=
(
10
,
6
))
plt
.
bar
(
load_factors
,
num_resizes
,
width
=
0.05
,
label
=
"
num_resize
"
,
color
=
'
green
'
)
plt
.
xlabel
(
'
load factor
'
)
plt
.
ylabel
(
'
num resize
'
)
plt
.
title
(
'
Histogramme du nombre de reallocations de mémoire en fonction du facteur de charge
'
)
plt
.
savefig
(
'
Histogramme 7B
'
)
# Taille de mémoire occupée en fonction du nombre d'éléments
plt
.
figure
(
figsize
=
(
10
,
6
))
plt
.
bar
(
sizes
,
num_resizes
,
width
=
100
,
color
=
'
red
'
,
label
=
"
Nombre de réallocations
"
)
# Augmente width si valeurs élevées
plt
.
xlabel
(
'
size
'
)
plt
.
ylabel
(
'
num_resizes
'
)
plt
.
title
(
'
Histogramme de la taille de mémoire occupé en fonction du nombre d
\'
élements
'
)
plt
.
savefig
(
'
Histogramme 7C
'
)
# 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)
'
)
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment