Python實現(xiàn)計算對象的內(nèi)存大小示例
本文實例講述了Python實現(xiàn)計算對象的內(nèi)存大小。分享給大家供大家參考,具體如下:
一般的sys.getsizeof()顯示不了復雜的字典。
查看類中的內(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
更多關于Python相關內(nèi)容感興趣的讀者可查看本站專題:《Python進程與線程操作技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對大家Python程序設計有所幫助。
相關文章
如何使用 Pylint 來規(guī)范 Python 代碼風格(來自IBM)
本文通過詳細的理論介紹和簡單易懂的實例全面介紹了 Python 代碼分析工具 Pylint。相信讀者看完后一定可以輕松地將 Pylint 運用到自己的開發(fā)工程中2018-04-04
python多線程實現(xiàn)代碼(模擬銀行服務操作流程)
這篇文章主要介紹了python模擬銀行服務多線程實現(xiàn)代碼,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2020-01-01

