介绍
这篇文章主要介绍了如何使用Python实现计算对象的内存大小,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获、下面让小编带着大家一起了解一下。
具体如下:
一般的sys.getsizeof()显示不了复杂的字典。
查看类中的内容:
def 转储(obj): ,for attr 拷贝dir (obj): # dir显示类的所有方法 打印才能(“,对象% s =, % r", %, (attr,, getattr (obj, attr)))
这里用递归调用所有对象的getsizeof:
def get_size (obj,,=None): ,#得到https://goshippo.com/blog/measure-real-size-any-python-object/,# Recursively finds  size of 对象=,,size  sys.getsizeof (obj) ,if seen  is 没有: seen =,才能设置()=,obj_id id (obj) ,if obj_id 看到拷贝: ,return 0 #,Important mark  as seen * *之前,entering recursion 用gracefully 处理 ,# self-referential 对象 ,seen.add (obj_id) ,if isinstance (obj, dict类型): size 才能+=,总和([get_size (v),见过),for v 拷贝obj.values ())) size 才能+=,总和([get_size (k,见过),for k 拷贝obj.keys ())) ,elif hasattr (obj, & # 39; __dict__& # 39;): size 才能+=,get_size (obj.__dict__,,) ,elif hasattr (obj, & # 39; __iter__& # 39;),以及not isinstance (obj,, (str,字节,,中bytearray)): size 才能+=,总和([get_size(我,,看到),for 小姐:拷贝obj)) ,return 大小
感谢你能够认真阅读完这篇文章,希望小编分享的“如何使用Python实现计算对象的内存大小”这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!