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简单日志处理类分享
Feb 14 Python
Python命令行参数解析模块getopt使用实例
Apr 13 Python
详解Python的Lambda函数与排序
Oct 25 Python
Matplotlib 生成不同大小的subplots实例
May 25 Python
Python设计模式之命令模式原理与用法实例分析
Jan 11 Python
由Python编写的MySQL管理工具代码实例
Apr 09 Python
python3中property使用方法详解
Apr 23 Python
Django之模板层的实现代码
Sep 09 Python
python集合常见运算案例解析
Oct 17 Python
Python 取numpy数组的某几行某几列方法
Oct 24 Python
python邮件中附加文字、html、图片、附件实现方法
Jan 04 Python
python实现按日期归档文件
Jan 30 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中使用灵巧的体系结构
2006/10/09 PHP
php开发留言板的CRUD(增,删,改,查)操作
2012/04/19 PHP
php 批量替换html标签的实例代码
2013/11/26 PHP
PHP制作3D扇形统计图以及对图片进行缩放操作实例
2014/10/23 PHP
win10环境PHP 7 安装配置【教程】
2016/05/09 PHP
yii2.0数据库迁移教程【多个数据库同时同步数据】
2016/10/08 PHP
thinkPHP5.0框架独立配置与动态配置方法
2017/03/17 PHP
yii框架结合charjs实现统计30天数据的方法
2020/04/04 PHP
javascript 正则替换 replace(regExp, function)用法
2010/05/22 Javascript
jQuery数据显示插件整合实现代码
2011/10/24 Javascript
js局部刷新页面时间具体实现
2013/07/04 Javascript
JQuery写动态树示例代码
2013/07/31 Javascript
基于jquery实现的定时显示与隐藏div广告的实现代码
2013/08/22 Javascript
jQuery将多条数据插入模态框的示例代码
2014/09/25 Javascript
angularjs在ng-repeat中使用ng-model遇到的问题
2016/01/21 Javascript
基于jQuery实现Ajax验证用户名是否存在实例
2016/03/30 Javascript
jQuery的文档处理程序详解
2016/05/10 Javascript
jQuery通过ajax方法获取json数据不执行success的原因及解决方法
2016/10/15 Javascript
使用Angular.js实现简单的购物车功能
2016/11/21 Javascript
JS中如何实现复选框全选功能
2016/12/19 Javascript
web.js.字符串与正则表达式操作
2017/05/13 Javascript
vue监听scroll的坑的解决方法
2017/09/07 Javascript
详解Vue双向数据绑定原理解析
2017/09/11 Javascript
微信小程序开发之改变data中数组或对象的某一属性值
2018/07/05 Javascript
教你30秒发布一个TypeScript包到NPM的方法步骤
2019/07/22 Javascript
Python 实现一个颜色色值转换的小工具
2016/12/06 Python
python GUI库图形界面开发之PyQt5计数器控件QSpinBox详细使用方法与实例
2020/02/28 Python
BIBLOO捷克:购买女装、男装、童装、鞋和配件
2017/01/27 全球购物
Vichy薇姿加拿大官网:法国药妆,全球专业敏感肌护肤领先品牌
2018/07/11 全球购物
迪士尼英国官方商店:shopDisney UK
2019/09/21 全球购物
介绍一下linux的文件系统
2015/10/06 面试题
优秀大学生的自我评价
2014/01/16 职场文书
生物学专业求职信
2014/07/23 职场文书
2014年质检员工作总结
2014/11/18 职场文书
三十年同学聚会感言
2015/07/30 职场文书
聊聊pytorch测试的时候为何要加上model.eval()
2021/05/23 Python