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实现数据库编程方法详解
Jun 09 Python
深入解析Python设计模式编程中建造者模式的使用
Mar 02 Python
Python堆排序原理与实现方法详解
May 11 Python
对Python3+gdal 读取tiff格式数据的实例讲解
Dec 04 Python
Python开发之Nginx+uWSGI+virtualenv多项目部署教程
May 13 Python
Pyqt清空某一个QTreeewidgetItem下的所有分支方法
Jun 17 Python
python将字符串list写入excel和txt的实例
Jul 20 Python
python同步两个文件夹下的内容
Aug 29 Python
Jupyter notebook如何修改平台字体
May 13 Python
Python在字符串中处理html和xml的方法
Jul 31 Python
Python基于Serializer实现字段验证及序列化
Nov 04 Python
LyScript实现绕过反调试保护的示例详解
Aug 14 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
第四节--构造函数和析构函数
2006/11/16 PHP
ajax缓存问题解决途径
2006/12/06 PHP
无需重新编译php加入ftp扩展的解决方法
2013/02/07 PHP
php缩放图片(根据宽高的等比例缩放)实例介绍
2013/06/09 PHP
PHP截断标题且兼容utf8和gb2312编码
2013/09/22 PHP
php绘图之在图片上写中文和英文的方法
2015/01/24 PHP
thinkPHP查询方式小结
2016/01/09 PHP
php实现购物车产品删除功能(2)
2020/07/23 PHP
laravel 数据迁移与 Eloquent ORM的实现方法
2019/04/12 PHP
php实例化一个类的具体方法
2019/09/19 PHP
Js+XML 操作
2006/09/20 Javascript
JavaScript 学习笔记(十五)
2010/01/28 Javascript
JavaScript等比例缩放图片控制超出范围的图片
2013/08/06 Javascript
JS对select控件option选项的增删改查示例代码
2013/10/21 Javascript
深入浅析javascript立即执行函数
2015/10/23 Javascript
jquery判断密码强度的验证代码
2020/04/22 Javascript
关于vue的npm run dev和npm run build的区别介绍
2019/01/14 Javascript
ES6 let和const定义变量与常量的应用实例分析
2019/06/27 Javascript
swiper实现导航滚动效果
2020/12/13 Javascript
在Python中处理日期和时间的基本知识点整理汇总
2015/05/22 Python
Python生成随机密码的方法
2017/06/16 Python
numpy.transpose对三维数组的转置方法
2018/04/17 Python
Python如何发布程序的详细教程
2018/10/09 Python
Tensorflow读取并输出已保存模型的权重数值方式
2020/01/04 Python
TensorFlow中如何确定张量的形状实例
2020/06/23 Python
详解Python3.8+PyQt5+pyqt5-tools+Pycharm配置详细教程
2020/11/02 Python
python gui开发——制作抖音无水印视频下载工具(附源码)
2021/02/07 Python
P/Invoke是什么
2015/07/31 面试题
环境保护建议书
2014/08/26 职场文书
五四演讲稿范文
2014/09/03 职场文书
教师国庆节演讲稿范文2014
2014/09/21 职场文书
工作收入证明模板
2014/10/10 职场文书
刘公岛导游词
2015/02/05 职场文书
MBA推荐信怎么写
2015/03/25 职场文书
三严三实学习心得体会(精选N篇)
2016/01/05 职场文书
Python实现GIF动图以及视频卡通化详解
2021/12/06 Python