Advertisement
Guest User

Untitled

a guest
Mar 19th, 2019
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.45 KB | None | 0 0
  1. import time
  2. import sys
  3.  
  4. c = 0
  5. d = {}
  6. vals = []
  7.  
  8. def get_size(obj, seen=None):
  9.     """Recursively finds size of objects"""
  10.     size = sys.getsizeof(obj)
  11.     if seen is None:
  12.         seen = set()
  13.     obj_id = id(obj)
  14.     if obj_id in seen:
  15.         return 0
  16.     # Important mark as seen *before* entering recursion to gracefully handle
  17.     # self-referential objects
  18.     seen.add(obj_id)
  19.     if isinstance(obj, dict):
  20.         size += sum([get_size(v, seen) for v in obj.values()])
  21.         size += sum([get_size(k, seen) for k in obj.keys()])
  22.     elif hasattr(obj, '__dict__'):
  23.         size += get_size(obj.__dict__, seen)
  24.     elif hasattr(obj, '__iter__') and not isinstance(obj, (str, bytes, bytearray)):
  25.         size += sum([get_size(i, seen) for i in obj])
  26.     return size
  27.  
  28. for i in range(100):
  29.     for j in range(100):
  30.         for k in range(100):
  31.             c = c + 1
  32.             k = str(i) + "." + str(i) + "." + str(j) + "." + str(k)
  33.             d[k] = {"date": time.perf_counter(), "count": 100}
  34.             vals.append(k)
  35.  
  36. print(c)
  37. print(str(get_size(d) / 1024 / 1024) + "MB")
  38. sum_ = 0
  39. max_ = 0
  40. min_ = 10000
  41.  
  42. for k in vals:
  43.     start = time.perf_counter()
  44.     tmp = d[k]
  45.     end = time.perf_counter()
  46.  
  47.     t = end - start
  48.     sum_ = sum_ + t
  49.  
  50.     if t > max_:
  51.         max_ = t
  52.    
  53.     if t < min_:
  54.         min_ = t
  55.  
  56. m = 1000000 # μs
  57. print("max: " + str(max_ * m) + " min: " + str(min_ * m) + " sum: " + str(sum_ * m))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement