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 21 Python
解读Python中degrees()方法的使用
May 18 Python
简单介绍Python的Django框架的dj-scaffold项目
May 30 Python
Python基于select实现的socket服务器
Apr 13 Python
利用python为运维人员写一个监控脚本
Mar 25 Python
设置python3为默认python的方法
Oct 31 Python
python 实现语音聊天机器人的示例代码
Dec 02 Python
python的pstuil模块使用方法总结
Jul 26 Python
python中p-value的实现方式
Dec 16 Python
Python3实现监控新型冠状病毒肺炎疫情的示例代码
Feb 13 Python
python实现简单颜色识别程序
Feb 19 Python
PyCharm最新激活码PyCharm2020.2.3有效
Nov 18 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
动漫女神老婆无限好,但日本女生可能就不是这么一回事了!
2020/03/04 日漫
生成静态页面的php函数,php爱好者站推荐
2007/03/19 PHP
不错的PHP学习之php4与php5之间会穿梭一点点感悟
2007/05/03 PHP
在PHP中使用Sockets 从Usenet中获取文件
2008/01/10 PHP
php while循环得到循环次数
2013/10/26 PHP
php将12小时制转换成24小时制的方法
2015/03/31 PHP
PHP5.0 TIDY_PARSE_FILE缓冲区溢出漏洞的解决方案
2018/10/14 PHP
学习ExtJS 访问容器对象
2009/10/07 Javascript
js实现在文本框光标处添加字符的方法介绍
2012/11/24 Javascript
THREE.JS入门教程(4)创建粒子系统
2013/01/24 Javascript
js中parseInt函数浅谈
2013/07/31 Javascript
返回页面顶部top按钮通过锚点实现(自写)
2013/08/30 Javascript
简单的jQuery banner图片轮播实例代码
2016/03/04 Javascript
详解JavaScript树结构
2017/01/09 Javascript
JavaScript运动框架 链式运动到完美运动(五)
2017/05/18 Javascript
node文字生成图片的示例代码
2017/10/26 Javascript
Vue 过滤器filters及基本用法
2017/12/26 Javascript
js 索引下标之li集合绑定点击事件
2018/01/12 Javascript
React-native桥接Android原生开发详解
2018/01/17 Javascript
ES6使用export和import实现模块化的方法
2018/09/10 Javascript
在Vue中使用this.$store或者是$route一直报错的解决
2019/11/08 Javascript
Django实现图片文字同时提交的方法
2015/05/26 Python
Django与遗留的数据库整合的方法指南
2015/07/24 Python
python实现石头剪刀布小游戏
2021/01/20 Python
Python django框架应用中实现获取访问者ip地址示例
2019/05/17 Python
pytorch在fintune时将sequential中的层输出方法,以vgg为例
2019/08/20 Python
python实现四人制扑克牌游戏
2020/04/22 Python
详解pandas apply 并行处理的几种方法
2021/02/24 Python
用HTML5制作视频拼图的教程
2015/05/13 HTML / CSS
微信小程序“圣诞帽”的实现思路详解
2017/12/28 HTML / CSS
牦牛毛户外探险服装:Kora
2019/02/08 全球购物
蟋蟀的住宅教学反思
2014/04/26 职场文书
音乐教育专业自荐信
2014/09/18 职场文书
终止劳动合同通知书
2015/04/16 职场文书
小学教研工作总结2015
2015/05/13 职场文书
SpringBoot详解自定义Stater的应用
2022/07/15 Java/Android