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中类的定义、继承及使用对象实例详解
Apr 30 Python
python获取外网ip地址的方法总结
Jul 02 Python
Python 稀疏矩阵-sparse 存储和转换
May 27 Python
python使用标准库根据进程名如何获取进程的pid详解
Oct 31 Python
Python中sort和sorted函数代码解析
Jan 25 Python
ubuntu安装mysql pycharm sublime
Feb 20 Python
python退出命令是什么?详解python退出方法
Dec 10 Python
Django model select的多种用法详解
Jul 16 Python
Pytorch反向求导更新网络参数的方法
Aug 17 Python
python 利用pywifi模块实现连接网络破解wifi密码实时监控网络
Sep 16 Python
关于Keras Dense层整理
May 21 Python
Vs Code中8个好用的python 扩展插件
Oct 12 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将图片保存入mysql数据库失败的解决方法
2014/12/27 PHP
php使用pdo连接sqlite3的配置示例
2016/05/27 PHP
laravel添加前台跳转成功页面示例
2019/10/22 PHP
改进:论坛UBB代码自动插入方式
2006/12/22 Javascript
YUI 读码日记之 YAHOO.util.Dom - Part.1
2008/03/22 Javascript
Javascript技巧之不要用for in语句对数组进行遍历
2010/10/20 Javascript
为jQuery增加join方法的实现代码
2010/11/28 Javascript
js操作输入框中选择内容兼容IE及其他主流浏览器
2014/04/22 Javascript
BootStrap下jQuery自动完成的样式调整
2016/05/30 Javascript
基于layer.js实现收货地址弹框选择然后返回相应的地址信息
2017/05/26 Javascript
angular.js实现购物车功能
2017/10/23 Javascript
对angular4子路由&辅助路由详解
2018/10/09 Javascript
JavaScript 预解析的4种实现方法解析
2019/09/03 Javascript
你可能从未使用过的11+个JavaScript特性(小结)
2020/01/08 Javascript
查找Vue中下标的操作(some和findindex)
2020/08/12 Javascript
Vue实现Header渐隐渐现效果的实例代码
2020/11/05 Javascript
Python 自动化表单提交实例代码
2017/06/08 Python
解决pycharm工程启动卡住没反应的问题
2019/01/19 Python
Python实现图片转字符画的代码实例
2019/02/22 Python
python判断单向链表是否包括环,若包含则计算环入口的节点实例分析
2019/10/23 Python
django框架中ajax的使用及避开CSRF 验证的方式详解
2019/12/11 Python
Python sublime安装及配置过程详解
2020/06/29 Python
Python操作word文档插入图片和表格的实例演示
2020/10/25 Python
HTML5 Plus 实现手机APP拍照或相册选择图片上传功能
2016/07/13 HTML / CSS
巴黎一票通:The Paris Pass
2018/02/10 全球购物
Calzedonia美国官网:意大利风格袜子、打底裤和沙滩装
2018/07/19 全球购物
美国在线肉类和海鲜配送:Crowd Cow
2020/10/02 全球购物
客服实习的个人自我鉴定
2013/10/20 职场文书
临床医师专业个人自我评价
2014/01/08 职场文书
2014年教师节活动总结
2014/08/29 职场文书
2014党员民主评议个人总结
2014/09/10 职场文书
南极大冒险观后感
2015/06/05 职场文书
2016初一新生军训心得体会
2016/01/11 职场文书
Nginx解决403 forbidden的完整步骤
2021/04/01 Servers
python如何查找列表中元素的位置
2022/05/30 Python
MySQL生成千万测试数据以及遇到的问题
2022/08/05 MySQL