Guest User

Untitled

a guest
Oct 22nd, 2018
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.20 KB | None | 0 0
  1. import datetime
  2. from pytz import utc
  3. from random import randrange, choice, uniform
  4. import time
  5. import json
  6.  
  7. number_of_records = 80000
  8. number_of_tests = 10
  9. collection = #change this
  10.  
  11.  
  12.  
  13. start = datetime.datetime(2011,1,1,0,0,0, tzinfo=utc)
  14. end = datetime.datetime.now(utc)
  15.  
  16.  
  17. def get_random_time_between(start=start, end=end):
  18. delta = end - start
  19. int_delta = (delta.days * 24 * 60 * 60) + delta.seconds
  20. random_second = randrange(int_delta)
  21. return (start + datetime.timedelta(seconds=random_second))
  22.  
  23. def get_random_user_id(start = 0 , end = 150):
  24. return randrange(start, end)
  25.  
  26. def get_random_var():
  27. return choice(['a', 'b', 'c', 'd', 'e', 'f', 'g','h', 'i', 'j', 'k', 'l', 'm', 'n','o', 'p'])
  28.  
  29. def get_num_closed():
  30. return uniform(0,3)
  31.  
  32. def get_random_change():
  33. return uniform(-100,100)
  34.  
  35. def simulate():
  36. print 'Simulating...'
  37. start = time.time()
  38. data_to_insert = []
  39. for each in range(number_of_records):
  40. data_to_insert.append({
  41. 'var1' : get_random_user_id(),
  42. 'va2' : True,
  43. 'var3' : False,
  44. 'var4' : randrange(0, 100),
  45. 'var5' : get_random_var(),
  46. 'var6' : get_num_closed(),
  47. 'var7' : get_random_change(),
  48. 'var8' : get_random_time_between()
  49. })
  50. collection.insert(data_to_insert)
  51. print time.time() - start
  52.  
  53. def time_it(function, num_tests):
  54. print 'Testing:', function.__name__
  55. start = time.time()
  56. for i in range(num_tests):
  57. function()
  58. runtime = time.time() - start
  59. print "Average: ", runtime/float(num_tests)
  60.  
  61.  
  62. def test_mongo_read():
  63. var = list(collection.find())
  64.  
  65. def test_json_read():
  66. with open('testfile.json', 'r') as output:
  67. test= json.load(output)
  68.  
  69. def create_json_file():
  70. print 'Creating JSON file replica of collection...'
  71. data = list(collection.find())
  72. output = open('testfile.json', 'w+b')
  73. dthandler = lambda obj: obj.isoformat() if isinstance(obj, datetime.datetime) else None
  74. json.dump(data, output, default=dthandler)
  75.  
  76. def run():
  77. #initialize
  78. simulate()
  79. create_json_file()
  80.  
  81. time_it(test_mongo_read, number_of_tests)
  82. time_it(test_json_read, number_of_tests)
  83.  
  84.  
  85. if __name__ == '__main__':
  86. run()
Add Comment
Please, Sign In to add comment