/test/speed/run.py

http://pickled-object-database.googlecode.com/ · Python · 30 lines · 24 code · 5 blank · 1 comment · 4 complexity · 94c9b0a68bef68e64482279738a06196 MD5 · raw file

  1. import time
  2. import pod
  3. import random
  4. def run(test_list, number_of_records, clear_cache, n = 10):
  5. the_times = {}
  6. rtest = []
  7. nlist = range(len(test_list))
  8. for i in range(n):
  9. random.shuffle(nlist)
  10. for j in nlist:
  11. rtest.append(test_list[j])
  12. for db,fn in rtest:
  13. db.commit(clear_cache = clear_cache)
  14. fn(number_of_records = 1)
  15. db.commit(clear_cache = clear_cache)
  16. time.sleep(1)
  17. time_start = 1000*time.time()
  18. fn(number_of_records = number_of_records-1)
  19. db.commit(clear_cache = False)
  20. time_end = int(1000*time.time()-time_start)
  21. the_times[fn.__name__] = the_times.setdefault(fn.__name__, 0) + time_end
  22. #print "\tTime for '" + fn.__name__ + "': " + str(time_end) + " milliseconds."
  23. db.commit(clear_cache = clear_cache)
  24. for key,value in the_times.iteritems():
  25. print ";\tTime for '" + key + "': " + str(value/n) + "ms"