import testbase
import gc
import time
+import hotshot
+import hotshot.stats
db = testbase.db
-NUM = 25000
-DIVISOR = 500
+NUM = 500
+DIVISOR = 50
class LoadTest(AssertMixin):
def setUpAll(self):
def setUp(self):
clear_mappers()
l = []
- for x in range(1,NUM/DIVISOR):
+ for x in range(1,NUM/DIVISOR + 1):
l.append({'item_id':x, 'value':'this is item #%d' % x})
#print l
items.insert().execute(*l)
- for x in range(1, NUM/DIVISOR):
+ for x in range(1, NUM/DIVISOR + 1):
l = []
- for y in range(1, NUM/(NUM/DIVISOR)):
+ for y in range(1, NUM/(NUM/DIVISOR) + 1):
z = ((x-1) * NUM/(NUM/DIVISOR)) + y
l.append({'sub_id':z,'value':'this is iteim #%d' % z, 'parent_id':x})
#print l
mapper(Item, items, properties={'subs':relation(SubItem, lazy=False)})
mapper(SubItem, subitems)
sess = create_session()
- now = time.time()
+ prof = hotshot.Profile("masseagerload.prof")
+ prof.start()
query = sess.query(Item)
l = query.select()
print "loaded ", len(l), " items each with ", len(l[0].subs), "subitems"
- total = time.time() -now
- print "total time ", total
+ prof.stop()
+ prof.close()
+ stats = hotshot.stats.load("masseagerload.prof")
+ stats.sort_stats('time', 'calls')
+ stats.print_stats()
if __name__ == "__main__":
testbase.main()