首页 > 编程语言 >浅谈Python的\__sizeof__()和getsizeof()

浅谈Python的\__sizeof__()和getsizeof()

时间:2023-02-24 13:35:23浏览次数:38  
标签:__ getsize 浅谈 Python sys getsizeof print sizeof

浅谈Python的_sizeof_()和getsizeof()

_sizeof_()

  • 返回内存中的大小,单位字节
 |  __sizeof__(self, /)
 |      Returns size in memory, in bytes.

getsizeof()

  • 这是sys模块的一个方法
  • 在pycharm中你只能看到如下内容,不过大致也是返回对象的大小,单位是字节
def getsizeof(p_object, default): # real signature unknown; restored from __doc__
    """
    getsizeof(object, default) -> int
    
    Return the size of object in bytes.
    """
    return 0
  • 2个貌似一样

测试代码

  • 代码1

    a = 1
    print(a.__sizeof__())  # 28 
    import sys
    print(sys.getsizeof(a)) # 28  嗯,一样
    
  • 代码2

    b = []
    print(b.__sizeof__())  # 40
    print(sys.getsizeof(b))   # 56 不一样(我在jupyter中执行的结果) # 如果你在pycharm中执行可能此处是 64
    
  • 代码3

    import sys
    l = []
    w =[1, 2]
    x =[4, 5, 7, 9]
    y =[2, 8, 6, 56, 45, 89, 88]
    
    print('sizeof:%d,getsize:%d' %(l.__sizeof__(),sys.getsizeof(l))) 
    print('sizeof:%d,getsize:%d' %(w.__sizeof__(),sys.getsizeof(w)))
    print('sizeof:%d,getsize:%d' %(x.__sizeof__(),sys.getsizeof(x)))
    
    # sizeof:40,getsize:64 # 此处就是在pycharm中执行的
    # sizeof:56,getsize:80
    # sizeof:72,getsize:96
    
  • getsizeof() 方法调用__sizeof__方法,但同时会附带一些额外的GC操作(arbage collector overhead). 因此前者的大小比后者要大一些

  • 列表初始化的时候是40,每加一个元素是8个字节

  • 代码大了之后,内存管理就显得非常重要了,现在仅作了解

标签:__,getsize,浅谈,Python,sys,getsizeof,print,sizeof
From: https://www.cnblogs.com/wuxianfeng023/p/17151100.html

相关文章

  • P1763 埃及分数 题解
    做完后发现很多题解都是有些细节问题的,对于向上与向下取整非常混乱。第一次做迭代加深搜索的题,记录一下。所谓迭代加深搜索,就是在求搜索树的深度的问题中,枚举层数,取最优......
  • 在线解析CCTV高清视频
    这两天看CCTV新闻联播,想下载下来,用普通的m3u8解析出来的是花屏,声音正常,而视频看不到,经过研究发现可以直接下载高清mp4格式。  常规m3u8视频解析花屏 解决办法:按【......
  • matlab 矩阵乘法与点乘
    一,*和.*的联系和区别。1,在进行数值运行和数值乘矩阵,这两种没有区别,例如:a*b=a.*b;a*B=a.*B;B*a=B.*a(其中小写字母表示数值,大写字母表示矩阵,下同)。2,在处理矩阵乘......
  • P4048 [JSOI2010]冷冻波 题解
    首先很好想到我们应该预处理出来每一个巫妖王能攻击到的精灵。那么这就是一个几何题。对于每一组精灵与巫妖王,设巫妖王坐标为\((x_1,y_1)\),精灵坐标为\((x_2,y_2)\)。......
  • P7221 [JSOI2010] 蔬菜庆典 题解
    本题解在求无解的情况下优化了下。通过分析样例,我们可以发现如果一个节点有多个Dlihc,那么这些Dlihc对应的权值必须一样,否则可以无限延伸下去。因为一号节点没有Tnera......
  • 谈“糖”色变?育润降糖奶粉助您控糖无负担!
    经济发展带来了诸多好处,最显著的就是居民生活水平提高。然而凡事有利有弊,生活好了,也出现了许多难缠的疾病,糖尿病就是其中一个。中国飞速进入高糖时代,慢性病致死率居......
  • STM32
     ifdef#ifdefX....(如果X这个标识符定义了,运行这段程序)#else....(如果标识符没有定义,运行这段程序)#endif(结束ifdef)#ifndefX....(如果X这个标......
  • Java开发知识体系
    1、JavaSE目录2、MySQL目录3、JDBC4、Oracle5、HTML+CSS6、HTML5+CSS37、JavaScript8、JQuery9、vue+elementui10、微信小程序......
  • 敏感信息泄露整理
    敏感信息泄露整理目录一、信息泄露示例1、示例:二、泄露方式1、原理:三、泄露危害1、危害:四、泄露挖掘1、爬虫文件2、目录信息3、越权访问4、开发注释、js文件5......
  • 纯新手教程:国内用户3分钟快速搭建网络环境访问chatgpt教程
    访问chatgpt其实很简单,但是由于chatgpt官方是禁止中国用户使用的,所以用本地环境去上chatgpt很有可能会被拉黑,这里小编提供一个更简单稳定的办法访问chatgpt。1、首先购买一......