Python获取对象所占内存大小方法
Python获取对象所占内存大小方法:
- sys.getsizeof()
- 内置函数__sizeof__()
先上代码看看结果
import sysclass A(object):pass
class B:passfor x in (None, 1, 1.2, complex(1, 1), 'c', [], (), {}, set(), B, B(), A, A()):print("{0:10s}\t{1:d}".format(type(x).__name__, sys.getsizeof(x)))print("-------------------------")for x in (None, 1, 1.2, complex(1, 1), '', [], (), {}, set()):print("{0:10s}\t{1:d}".format(type(x).__name__, x.__sizeof__()))
代码运行结果为:
NoneType 16
int 28
float 24
complex 32
str 50
list 64
tuple 48
dict 288
set 224
type 1016
B 56
type 1016
A 56
-------------------------
NoneType 16
int 28
float 24
complex 32
str 49
list 40
tuple 24
dict 264
set 200
可以看出两个方法所计算的对象内存略有不同,__sizeof__为python对象自带的方法,计算对象所占内存,和c语言的sizeof()函数功能相似。
def __sizeof__(self): # real signature unknown; restored from __doc__"""__sizeof__() -> intsize of object in memory, in bytes"""return 0
返回值为int,返回内存中对象的大小,以字节为单位。
而sys.getsizeof()调用对象的__sizeof__方法,如果对象由垃圾收集器管理,则会增加额外的垃圾收集器开销,所以set,dict,tuple,list是由垃圾收集管理器管理的?垃圾收集管理器占24字节?。
def getsizeof(p_object, default): # real signature unknown; restored from __doc__"""getsizeof(object, default) -> intReturn the size of object in bytes."""return 0
参考链接:
python 获取对象的占用内存大小
sys.getsizeof
系统:Windows 7,64位
Python版本:3.5.4
文中如有不对请指教!
Python获取对象所占内存大小方法相关推荐
- 如何查看java对象所占内存大小
有时候我们需要对比看那种数据结构的Java对象占用的内存比较少,这时候我们就需要查看内存大小. 借助org.apache.lucene工具类 当一个对象有多个属性,需要计算整个对象的大小时,可以借助o ...
- 检测Java对象所占内存大小 (转载)
2019独角兽企业重金招聘Python工程师标准>>> Don't pay the price for hidden class fields By Vladimir Roubtso ...
- Java计算一个对象所占内存大小_Java程序计算各种对象所占内存的大小的方法
System.out.println("--- Memory Usage:"); /*打印一行字符串---Memory Usage*/ Runtime rt=Runtime.get ...
- 如何计算Java对象所占内存的大小
摘要 本文以如何计算Java对象占用内存大小为切入点,在讨论计算Java对象占用堆内存大小的方法的基础上,详细讨论了Java对象头格式并结合JDK源码对对象头中的协议字段做了介绍,涉及内存模型.锁原理 ...
- String引起的OutOfMemory异常 + 如何计算C#对象所占内存的大小
String引起的OutOfMemory异常 + 如何计算C#对象所占内存的大小 参考文章: (1)String引起的OutOfMemory异常 + 如何计算C#对象所占内存的大小 (2)https: ...
- java取得对象占用的内存大小
本文环境 win 10 jdk 1.8.0_241 IntelliJ 2019.1.3 一.通过Instrumentation获取内存 在java工程中添加如下代理类: package com.nin ...
- C++_类和结构体所占内存大小,静态成员问题
C++_类和结构体所占内存大小,静态成员问题 静态成员未初始化或者未调用(当然静态成员必须类外初始化才能调用)是不占内存的.静态成员不占类或结构体的内存 静态成员函数同样只声明未定义同样不占内存 指针 ...
- 一个HashMap对象所占内存的分析
Map<Object, Object> map = new HashMap<>(); 日常写代码中,可能都不会关注这一行代码占了多少个内存,今天我们就来分析一下. 首先,map ...
- python读文件路径-python获取程序执行文件路径的方法(推荐)
1.获取当前执行主脚本方法:sys.argv[0]和_ file _ (1)sys.argv 一个传给Python脚本的指令参数列表.sys.argv[0]是脚本的名字.一般得到的是相对路径,用os. ...
- 共用体和结构体所占内存大小的计算方法
共同体作用:让几个不同类型的变量共享同一个内存地址. 共用体所占内存大小:共用体所占内存的大小即公用体中长度最大元素所占用的字节数. #include<stdio.h> typedef u ...
最新文章
- 《算法竞赛进阶指南》打卡-基本算法-AcWing 95. 费解的开关:位运算、枚举、递推
- 【Cocosd2d实例教程五】Cocos2d添加虚拟摇杆控制器
- SQL SERVER 2005 中的CTE
- 交叉线和直连线的线序,做法和使用场合
- PowerShell使用
- 动态规划|最大k乘积问题(C语言)
- POI中设置Excel单元格格式
- express的基本用法
- Linux系统配置及服务管理_第03章用户管理
- Round trip
- wifi rssi 计算 距离_用RSSI/TOF判断距离靠谱吗?浅谈RSSI/TOF测距优劣
- 数据库索引是什么,它的作用是什么?
- linux安装离线docker包教程,Centos7离线安装Docker环境
- 建站百科|如何做好网站Banner设计
- xrd计算晶面间距_xrd如何计算晶格间距(1)
- BP,RNN 和 LSTM暨《Supervised Sequence Labelling with Recurrent Neural Networks-2012》阅读笔记
- 大学英语综合教程三 Unit 1 课文内容英译中 中英翻译
- 计算机网络常见面试题(计算机考研必备)
- node-sass安装失败的解决方法
- 大唐芙蓉园游记(r11笔记第56天)
热门文章
- 每个 gopher 都需要了解的 Go AST
- edge播放视频HTML5黑屏,Win10 edge 浏览器 播放视频黑屏解决方法
- Python 列表,for循环,元组的使用【修改、添加、删除、排序、切片】w
- 计算机可移动磁盘无法显示图片,电脑不显示移动硬盘图标?两种解决办法
- 徐谓-科举制与中国独特的士大夫阶层
- mac安装chromedriver谷歌浏览器驱动
- 关于WORD提示“Word无法创建工作文件,请检查临时环境变量”问题的解决办法
- IE浏览器主页被劫持,如何解决主页被篡改问题?
- CVPR2022论文速递(2022.4.12)!共24篇!GAN/transformer/超分等
- 基于vue的个人博客