Python获取对象所占内存大小方法:

  1. sys.getsizeof()
  2. 内置函数__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获取对象所占内存大小方法相关推荐

  1. 如何查看java对象所占内存大小

    有时候我们需要对比看那种数据结构的Java对象占用的内存比较少,这时候我们就需要查看内存大小. 借助org.apache.lucene工具类 当一个对象有多个属性,需要计算整个对象的大小时,可以借助o ...

  2. 检测Java对象所占内存大小 (转载)

    2019独角兽企业重金招聘Python工程师标准>>> Don't pay the price for hidden class fields By Vladimir Roubtso ...

  3. Java计算一个对象所占内存大小_Java程序计算各种对象所占内存的大小的方法

    System.out.println("--- Memory Usage:"); /*打印一行字符串---Memory Usage*/ Runtime rt=Runtime.get ...

  4. 如何计算Java对象所占内存的大小

    摘要 本文以如何计算Java对象占用内存大小为切入点,在讨论计算Java对象占用堆内存大小的方法的基础上,详细讨论了Java对象头格式并结合JDK源码对对象头中的协议字段做了介绍,涉及内存模型.锁原理 ...

  5. String引起的OutOfMemory异常 + 如何计算C#对象所占内存的大小

    String引起的OutOfMemory异常 + 如何计算C#对象所占内存的大小 参考文章: (1)String引起的OutOfMemory异常 + 如何计算C#对象所占内存的大小 (2)https: ...

  6. java取得对象占用的内存大小

    本文环境 win 10 jdk 1.8.0_241 IntelliJ 2019.1.3 一.通过Instrumentation获取内存 在java工程中添加如下代理类: package com.nin ...

  7. C++_类和结构体所占内存大小,静态成员问题

    C++_类和结构体所占内存大小,静态成员问题 静态成员未初始化或者未调用(当然静态成员必须类外初始化才能调用)是不占内存的.静态成员不占类或结构体的内存 静态成员函数同样只声明未定义同样不占内存 指针 ...

  8. 一个HashMap对象所占内存的分析

    Map<Object, Object> map = new HashMap<>(); 日常写代码中,可能都不会关注这一行代码占了多少个内存,今天我们就来分析一下. 首先,map ...

  9. python读文件路径-python获取程序执行文件路径的方法(推荐)

    1.获取当前执行主脚本方法:sys.argv[0]和_ file _ (1)sys.argv 一个传给Python脚本的指令参数列表.sys.argv[0]是脚本的名字.一般得到的是相对路径,用os. ...

  10. 共用体和结构体所占内存大小的计算方法

    共同体作用:让几个不同类型的变量共享同一个内存地址. 共用体所占内存大小:共用体所占内存的大小即公用体中长度最大元素所占用的字节数. #include<stdio.h> typedef u ...

最新文章

  1. 《算法竞赛进阶指南》打卡-基本算法-AcWing 95. 费解的开关:位运算、枚举、递推
  2. 【Cocosd2d实例教程五】Cocos2d添加虚拟摇杆控制器
  3. SQL SERVER 2005 中的CTE
  4. 交叉线和直连线的线序,做法和使用场合
  5. PowerShell使用
  6. 动态规划|最大k乘积问题(C语言)
  7. POI中设置Excel单元格格式
  8. express的基本用法
  9. Linux系统配置及服务管理_第03章用户管理
  10. Round trip
  11. wifi rssi 计算 距离_用RSSI/TOF判断距离靠谱吗?浅谈RSSI/TOF测距优劣
  12. 数据库索引是什么,它的作用是什么?
  13. linux安装离线docker包教程,Centos7离线安装Docker环境
  14. 建站百科|如何做好网站Banner设计
  15. xrd计算晶面间距_xrd如何计算晶格间距(1)
  16. BP,RNN 和 LSTM暨《Supervised Sequence Labelling with Recurrent Neural Networks-2012》阅读笔记
  17. 大学英语综合教程三 Unit 1 课文内容英译中 中英翻译
  18. 计算机网络常见面试题(计算机考研必备)
  19. node-sass安装失败的解决方法
  20. 大唐芙蓉园游记(r11笔记第56天)

热门文章

  1. 每个 gopher 都需要了解的 Go AST
  2. edge播放视频HTML5黑屏,Win10 edge 浏览器 播放视频黑屏解决方法
  3. Python 列表,for循环,元组的使用【修改、添加、删除、排序、切片】w
  4. 计算机可移动磁盘无法显示图片,电脑不显示移动硬盘图标?两种解决办法
  5. 徐谓-科举制与中国独特的士大夫阶层
  6. mac安装chromedriver谷歌浏览器驱动
  7. 关于WORD提示“Word无法创建工作文件,请检查临时环境变量”问题的解决办法
  8. IE浏览器主页被劫持,如何解决主页被篡改问题?
  9. CVPR2022论文速递(2022.4.12)!共24篇!GAN/transformer/超分等
  10. 基于vue的个人博客