Python實現(xiàn)計算對象的內(nèi)存大小示例
本文實例講述了Python實現(xiàn)計算對象的內(nèi)存大小。分享給大家供大家參考,具體如下:
一般的sys.getsizeof()顯示不了復(fù)雜的字典。
查看類中的內(nèi)容:
def dump(obj): for attr in dir(obj):#dir顯示類的所有方法 print(" obj.%s = %r" % (attr, getattr(obj, attr)))
這里用遞歸調(diào)用所有對象的getsizeof:
def get_size(obj, seen=None): # From https://goshippo.com/blog/measure-real-size-any-python-object/ # 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
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python進程與線程操作技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對大家Python程序設(shè)計有所幫助。
相關(guān)文章
python實現(xiàn)自動發(fā)送報警監(jiān)控郵件
這篇文章主要為大家詳細介紹了python實現(xiàn)自動發(fā)送報警監(jiān)控郵件,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-06-06Python Shiny庫創(chuàng)建交互式Web應(yīng)用及高級功能案例
Shiny是一個基于Python的交互式Web應(yīng)用框架,專注于簡化Web應(yīng)用的開發(fā)流程,本文將深入探討Shiny庫的基本用法、高級功能以及實際應(yīng)用案例,以幫助開發(fā)者充分發(fā)揮Shiny在Web應(yīng)用開發(fā)中的優(yōu)勢2023-12-12Python使用mmap實現(xiàn)內(nèi)存映射文件操作
內(nèi)存映射通常可以提高I/O的性能,本文主要介紹了Python使用mmap實現(xiàn)內(nèi)存映射文件操作,分享給大家,感興趣的可以了解一下2021-06-06