import time class bar: def __init__(self, a, b): self.a = a self.b = b def oblah(self): return self.a+self.b def fblah(a,b): return a+b arrays = [] times = 200000 # Arrays # Create arr_create = time.time() for i in xrange(times): arrays.append({'a':1, 'b': 3}) arr_create = arr_create - time.time() # Get arr_get = time.time() for i in xrange(times): tmp = arrays[i]['a'] tmp = arrays[i]['b'] arr_get = arr_get - time.time() # Function arr_f = time.time() for i in xrange(times): tmp = fblah(arrays[i]['a'], arrays[i]['b']) arr_f = arr_f - time.time() # Clean arrays = [] # Objects objects = [] # Create obj_create = time.time() for i in xrange(times): objects.append(bar(1,3)) obj_create = obj_create - time.time() # Get obj_get = time.time() for i in xrange(times): tmp = objects[i].a tmp = objects[i].b obj_get = obj_get - time.time() # Function obj_f = time.time() for i in xrange(times): tmp = objects[i].oblah() obj_f = obj_f - time.time() print "Arrays vs. Objects benchmark, iterations:"+str(times) print "Create:" print " Arrays: "+str(arr_create) print " Objects: "+str(obj_create) print "Get:" print " Arrays: "+str(arr_get) print " Objects: "+str(obj_get) print "Function:" print " Arrays: "+str(arr_f) print " Objects: "+str(obj_f)