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 Mysql数据库操作 Perl操作Mysql数据库
Jan 12 Python
使用Python的Tornado框架实现一个简单的WebQQ机器人
Apr 24 Python
使用FastCGI部署Python的Django应用的教程
Jul 22 Python
Python中文分词实现方法(安装pymmseg)
Jun 14 Python
用Python实现数据的透视表的方法
Nov 16 Python
python+unittest+requests实现接口自动化的方法
Nov 29 Python
python实现停车管理系统
Nov 30 Python
wxPython实现文本框基础组件
Nov 18 Python
tensorflow -gpu安装方法(不用自己装cuda,cdnn)
Jan 20 Python
Python读取JSON数据操作实例解析
May 18 Python
python程序实现BTC(比特币)挖矿的完整代码
Jan 20 Python
Python学习之异常中的finally使用详解
Mar 16 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
PhpMyAdmin中无法导入sql文件的解决办法
2010/01/08 PHP
使用Curl进行抓取远程内容时url中文编码问题示例探讨
2013/10/29 PHP
PHP计算近1年的所有月份
2017/03/13 PHP
如何做到打开一个页面,过几分钟自动转到另一页面
2007/04/20 Javascript
windows系统下简单nodejs安装及环境配置
2013/01/08 NodeJs
Function.prototype.call.apply结合用法分析示例
2013/07/03 Javascript
Js 正则表达式知识汇总
2014/12/02 Javascript
详谈jQuery操纵DOM元素属性 attr()和removeAtrr()方法
2015/01/22 Javascript
JQuery选择器、过滤器大整理
2015/05/26 Javascript
js弹出窗口返回值的简单实例
2016/05/28 Javascript
BootStrap学习系列之Bootstrap Typeahead 组件实现百度下拉效果(续)
2016/07/07 Javascript
浅谈angularjs中响应回车事件
2017/04/24 Javascript
AngularJS入门教程一:路由用法初探
2017/05/27 Javascript
angularjs select 赋值 ng-options配置方法
2018/02/28 Javascript
jQuery插件实现非常实用的tab栏切换功能【案例】
2019/02/18 jQuery
vue.js多页面开发环境搭建过程
2019/04/24 Javascript
js实现简单的点名器随机色实例代码
2020/09/20 Javascript
python进阶教程之函数参数的多种传递方法
2014/08/30 Python
python中查看变量内存地址的方法
2015/05/05 Python
django js实现部分页面刷新的示例代码
2018/05/28 Python
pycharm执行python时,填写参数的方法
2018/10/29 Python
python用pandas数据加载、存储与文件格式的实例
2018/12/07 Python
如何解决django-celery启动后迅速关闭
2019/10/16 Python
利用Python pandas对Excel进行合并的方法示例
2020/11/04 Python
Selenium 配置启动项参数的方法
2020/12/04 Python
jupyter notebook指定启动目录的方法
2021/03/02 Python
python 如何读、写、解析CSV文件
2021/03/03 Python
CSS3 please 跨浏览器的CSS3产生器
2010/03/14 HTML / CSS
使用html5实现表格实现标题合并的实例代码
2019/05/13 HTML / CSS
西雅图的买手店:Totokaelo
2019/10/19 全球购物
linux面试相关问题
2012/08/11 面试题
致跳远运动员加油稿
2014/02/11 职场文书
服务之星事迹材料
2014/05/03 职场文书
大专学生求职信
2014/07/04 职场文书
从贫穷到富有,是知识技能和学习力的差别
2019/08/20 职场文书
高一作文之暖冬
2019/11/09 职场文书