File tree 2 files changed +45
-2
lines changed
2 files changed +45
-2
lines changed Original file line number Diff line number Diff line change
1
+ import sys
2
+
3
+ print ("Lists and memory usage" )
4
+ i = []
5
+ print ('list ()' )
6
+ for n in range (1 , 1000 ):
7
+ i .append (1 )
8
+ if n % 100 == 0 :
9
+ print (f'for { len (i )} items the size is { sys .getsizeof (i ):,} bytes' )
10
+
11
+ r = {'route' : '22' , 'date' : '01/01/2001' , 'daytype' : 'U' , 'rides' : 7354 }
12
+ print (sys .getsizeof (r ))
13
+ print ('dict {}' )
14
+ for n in range (1 , 1000 ):
15
+ r [str (n )] = 10
16
+ if n % 100 == 0 :
17
+ print (f'for { n } items the size is { sys .getsizeof (r ):,} bytes' )
18
+
19
+ r = {'route' : '22' , 'date' : '01/01/2001' , 'daytype' : 'U' , 'rides' : 7354 }
20
+ print (sys .getsizeof (r ))
21
+ nrows = 577563
22
+ print (f'store nrows of data at 240bytes per row: { (nrows * 240 )/ 1048576 :,.2f} ' )
23
+ print (f'store nrows of data in 4 lists as 8 bytes per element (32bytes a row): { (nrows * 4 * 8 )/ 1048576 :,.2f} ' )
Original file line number Diff line number Diff line change @@ -129,7 +129,27 @@ def run_test(function_name, class_name=None):
129
129
tracemalloc .stop ()
130
130
end_time = time .time ()
131
131
elapsed_time = end_time - start_time
132
- return (current ,peak ,elapsed_time )
132
+ return (current , peak , elapsed_time )
133
+
134
+
135
+ def read_rides_as_columns (filename ):
136
+ '''
137
+ Read the bus ride data into 4 lists, representing columns
138
+ '''
139
+
140
+ routes = []
141
+ dates = []
142
+ daytypes = []
143
+ numrides = []
144
+ with open (filename ) as f :
145
+ rows = csv .reader (f )
146
+ headins = next (rows )
147
+ for row in rows :
148
+ routes .append (row [0 ])
149
+ dates .append (row [1 ])
150
+ daytypes .append (row [2 ])
151
+ numrides .append (int (row [3 ]))
152
+ return dict (routes = routes , dates = dates , daytypes = daytypes , numrides = numrides )
133
153
134
154
135
155
if __name__ == '__main__' :
@@ -150,7 +170,7 @@ def run_test(function_name, class_name=None):
150
170
151
171
for result in results :
152
172
print (f'{ result [0 ]} ' )
153
- print (f'Memory Use: Current { result [1 ]/ (1024 * 1024 ):.2f} MB, Peak { result [2 ] / (1024 * 1024 ):.2f} MB' )
173
+ print (f'Memory Use: Current { result [1 ] / (1024 * 1024 ):.2f} MB, Peak { result [2 ] / (1024 * 1024 ):.2f} MB' )
154
174
print (f'Elapsed Time: { result [3 ]:.2f} s\n ' )
155
175
156
176
# rows = read_rides_as_dict('Data/ctabus.csv')
You can’t perform that action at this time.
0 commit comments