Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import time
- import sys
- c = 0
- d = {}
- vals = []
- def get_size(obj, seen=None):
- """Recursively finds size of objects"""
- size = sys.getsizeof(obj)
- if seen is None:
- seen = set()
- obj_id = id(obj)
- if obj_id in seen:
- return 0
- # Important mark as seen *before* entering recursion to gracefully handle
- # self-referential objects
- seen.add(obj_id)
- if isinstance(obj, dict):
- size += sum([get_size(v, seen) for v in obj.values()])
- size += sum([get_size(k, seen) for k in obj.keys()])
- elif hasattr(obj, '__dict__'):
- size += get_size(obj.__dict__, seen)
- elif hasattr(obj, '__iter__') and not isinstance(obj, (str, bytes, bytearray)):
- size += sum([get_size(i, seen) for i in obj])
- return size
- for i in range(100):
- for j in range(100):
- for k in range(100):
- c = c + 1
- k = str(i) + "." + str(i) + "." + str(j) + "." + str(k)
- d[k] = {"date": time.perf_counter(), "count": 100}
- vals.append(k)
- print(c)
- print(str(get_size(d) / 1024 / 1024) + "MB")
- sum_ = 0
- max_ = 0
- min_ = 10000
- for k in vals:
- start = time.perf_counter()
- tmp = d[k]
- end = time.perf_counter()
- t = end - start
- sum_ = sum_ + t
- if t > max_:
- max_ = t
- if t < min_:
- min_ = t
- m = 1000000 # μs
- print("max: " + str(max_ * m) + " min: " + str(min_ * m) + " sum: " + str(sum_ * m))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement