Python实现计算对象的内存大小示例


Posted in Python onJuly 10, 2019

本文实例讲述了Python实现计算对象的内存大小。分享给大家供大家参考,具体如下:

一般的sys.getsizeof()显示不了复杂的字典。

查看类中的内容:

def dump(obj):
 for attr in dir(obj):#dir显示类的所有方法
  print(" obj.%s = %r" % (attr, getattr(obj, attr)))

这里用递归调用所有对象的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程序设计有所帮助。

Python 相关文章推荐
python对字典进行排序实例
Sep 25 Python
Python日志模块logging简介
Apr 13 Python
python脚本设置超时机制系统时间的方法
Feb 21 Python
Python调用C语言的方法【基于ctypes模块】
Jan 22 Python
如何利用python制作时间戳转换工具详解
Sep 12 Python
python中实现控制小数点位数的方法
Jan 24 Python
python实现烟花小程序
Jan 30 Python
python代码xml转txt实例
Mar 10 Python
浅谈在django中使用redirect重定向数据传输的问题
Mar 13 Python
Python字符串格式化f-string多种功能实现
May 07 Python
Python tkinter实现简单加法计算器代码实例
May 13 Python
Pycharm编辑器功能之代码折叠效果的实现代码
Oct 15 Python
Python画图高斯分布的示例
Jul 10 #Python
使用Python实现跳一跳自动跳跃功能
Jul 10 #Python
windows安装TensorFlow和Keras遇到的问题及其解决方法
Jul 10 #Python
使用python对多个txt文件中的数据进行筛选的方法
Jul 10 #Python
Python 占位符的使用方法详解
Jul 10 #Python
Python寻找路径和查找文件路径的示例
Jul 10 #Python
python获取当前文件路径以及父文件路径的方法
Jul 10 #Python
You might like
php下使用SimpleXML 处理XML 文件
2010/02/27 PHP
重新封装zend_soap实现http连接安全认证的php代码
2011/01/12 PHP
使用PHP下载CSS文件中的所有图片【几行代码即可实现】
2016/12/14 PHP
jQuery jqgrid 对含特殊字符json 数据的 Java 处理方法
2011/01/01 Javascript
Jquery 点击按钮显示和隐藏层的代码
2011/07/25 Javascript
使用JavaScript 实现对象 匀速/变速运动的方法
2013/05/08 Javascript
jquery实现瀑布流效果分享
2014/03/26 Javascript
JavaScript中String.match()方法的使用详解
2015/06/06 Javascript
jQuery表格插件datatables用法详解
2020/11/23 Javascript
javascript每日必学之继承
2016/02/23 Javascript
JS+HTML5手机开发之滚动和惯性缓动实现方法分析
2016/06/12 Javascript
JavaScript数组迭代方法
2017/03/03 Javascript
JavaScript代码实现简单计算器
2020/12/27 Javascript
[44:47]Ti4 循环赛第三日 iG vs NaVi
2014/07/12 DOTA
python 正则式 概述及常用字符
2009/05/07 Python
使用python调用浏览器并打开一个网址的例子
2014/06/05 Python
python常用web框架简单性能测试结果分享(包含django、flask、bottle、tornado)
2014/08/25 Python
利用python批量检查网站的可用性
2016/09/09 Python
Python中sort和sorted函数代码解析
2018/01/25 Python
pycharm 将django中多个app放到同个文件夹apps的处理方法
2018/05/30 Python
在python 中实现运行多条shell命令
2019/01/07 Python
python基于itchat模块实现微信防撤回
2019/04/29 Python
python实现文件批量编码转换及注意事项
2019/10/14 Python
Python Django中间件,中间件函数,全局异常处理操作示例
2019/11/08 Python
详解用Python调用百度地图正/逆地理编码API
2020/07/02 Python
Python根据字符串调用函数过程解析
2020/11/05 Python
英国在线定制百叶窗网站:Swift Direct Blinds
2020/02/25 全球购物
启动一个线程是用run()还是start()
2016/12/25 面试题
Python使用openpyxl复制整张sheet
2021/03/24 Python
污水厂厂长岗位职责
2014/01/04 职场文书
甜美蛋糕店创业计划书
2014/01/30 职场文书
工程造价专业大学生职业规划范文
2014/03/09 职场文书
房屋出售授权委托书
2014/10/12 职场文书
社区端午节活动总结
2015/02/11 职场文书
迁徙的鸟观后感
2015/06/09 职场文书
爱的教育读书笔记
2015/06/26 职场文书