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实现的各种排序算法代码
Mar 04 Python
举例讲解Python中metaclass元类的创建与使用
Jun 30 Python
Python实现图片滑动式验证识别方法
Nov 09 Python
pycharm 主题theme设置调整仿sublime的方法
May 23 Python
Python3正则匹配re.split,re.finditer及re.findall函数用法详解
Jun 11 Python
Selenium定时刷新网页的实现代码
Oct 31 Python
python中count函数简单的实例讲解
Feb 06 Python
python程序输出无内容的解决方式
Apr 09 Python
Python 改变数组类型为uint8的实现
Apr 09 Python
Python requests模块cookie实例解析
Apr 14 Python
python实现暗通道去雾算法的示例
Sep 27 Python
Opencv实现二维直方图的计算及绘制
Jul 21 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
php2html php生成静态页函数
2008/12/08 PHP
PHP实现获取FLV文件的时间
2015/02/10 PHP
php 判断页面或图片是否经过gzip压缩的方法
2017/04/05 PHP
用于自动添加Digg This!按钮的JavaScript
2006/12/23 Javascript
IE8 下的Js错误HTML Parsing Error...
2009/08/14 Javascript
JavaScript 打地鼠游戏代码说明
2010/10/12 Javascript
javascript中怎么做对象的类型判断
2013/11/11 Javascript
jQuery获得页面元素的绝对/相对位置即绝对X,Y坐标
2014/03/06 Javascript
js中使用replace方法完成某个字符的转换
2014/08/20 Javascript
轻松学习jQuery插件EasyUI EasyUI表单验证
2015/12/01 Javascript
改变checkbox默认选中状态及取值的实现代码
2016/05/26 Javascript
jQuery加密密码到cookie的实现代码
2017/04/18 jQuery
js中less常用的方法小结
2017/08/09 Javascript
JS中验证整数和小数的正则表达式
2018/10/08 Javascript
详解使用uni-app开发微信小程序之登录模块
2019/05/09 Javascript
JavaScript进阶(四)原型与原型链用法实例分析
2020/05/09 Javascript
JS使用for in有序获取对象数据
2020/05/19 Javascript
[00:32]2018DOTA2亚洲邀请赛VG出场
2018/04/03 DOTA
Python中实现结构相似的函数调用方法
2015/03/10 Python
在SAE上部署Python的Django框架的一些问题汇总
2015/05/30 Python
Python实现批量修改文件名实例
2015/07/08 Python
Python机器学习之SVM支持向量机
2017/12/27 Python
对Python 2.7 pandas 中的read_excel详解
2018/05/04 Python
Python判断一个list中是否包含另一个list全部元素的方法分析
2018/12/24 Python
Python 解析pymysql模块操作数据库的方法
2020/02/18 Python
Python通过两个dataframe用for循环求笛卡尔积
2020/04/29 Python
python使用建议与技巧分享(二)
2020/08/17 Python
会计专业大学生求职信范文
2014/01/28 职场文书
银行办公室岗位职责
2014/03/10 职场文书
宣传普通话标语
2014/06/27 职场文书
教师批评与自我批评材料
2014/10/16 职场文书
羊脂球读书笔记
2015/06/30 职场文书
《给予树》教学反思
2016/03/03 职场文书
SpringBoot 拦截器妙用你真的了解吗
2021/07/01 Java/Android
Pytorch中使用ImageFolder读取数据集时忽略特定文件
2022/03/23 Python
5个pandas调用函数的方法让数据处理更加灵活自如
2022/04/24 Python