8
8
print ("Configuration" )
9
9
# Python float is 64 bit / 8 byte
10
10
ARRAY_SIZE = 1000 * 1000 * 10
11
- print ("- Size of data array: {} MB" .format (ARRAY_SIZE * 8 / (1000 * 1000 )))
11
+ size_of_array = ARRAY_SIZE * 8 / (1024 * 1024 )
12
+ print ("- Size of data array: {} MiB" .format (size_of_array ))
12
13
13
14
N = 10
14
15
print ("- Number of iterations to average: {}" .format (N ))
@@ -19,6 +20,20 @@ def SETUP():
19
20
buffer_array = np .empty (ARRAY_SIZE )
20
21
return array1 , array2 , buffer_array
21
22
23
+ def size_of (array : np .ndarray ) -> float :
24
+ """
25
+ Calculates the size in memory of a Numpy array
26
+ in MiB.
27
+ """
28
+ element_dtype = array .dtype .type
29
+
30
+ element_size = 0
31
+ if "32" in str (element_dtype ):
32
+ element_size = 4 # byte
33
+ elif "64" in str (element_dtype ):
34
+ element_size = 8 # byte
35
+
36
+ return float ( np .prod (array .shape ) * element_size / (1024 * 1024 ) )
22
37
23
38
if __name__ == "__main__" :
24
39
# gc.disable()
@@ -39,6 +54,7 @@ def SETUP():
39
54
average = elapsed_time / N
40
55
print ("{:45}{:<15.6f}{:<15.6f}" .format ("Non-contiguous access, vectorization" , elapsed_time , average ))
41
56
57
+ print ( size_of (array1 ) + size_of (array2 ) + size_of (buffer_array ) + size_of (index_map ) )
42
58
43
59
array1 , array2 , buffer_array = SETUP ()
44
60
index_map = np .arange (0 , ARRAY_SIZE )
0 commit comments