首页 / 知识
关于性能:了解Python中的对象使用了多少内存
2023-04-13 14:17:00

Find out how much memory is being used by an object in Python本问题已经有最佳答案,请猛点这里访问。
你将如何找出一个对象使用了多少内存?我知道有可能知道一块代码使用了多少,但不知道一个实例化对象(在其生命周期中的任何时候)使用了多少,这正是我想要的。 要找出一个python对象的内存大小是不容易的。您可能会发现的一个问题是,python对象(如list和dict)可能引用了其他的python对象(在本例中,您的大小是多少)?是否包含每个对象的大小?)。存在一些与对象类型和垃圾收集相关的指针开销和内部结构。最后,一些Python对象具有不明显的行为。例如,在大多数情况下,列表为更多对象预留空间;dict甚至更复杂,因为它们可以以不同的方式操作(它们对少量键有不同的实现,有时它们会过度分配条目)。 这里有一大块代码(以及一大块更新后的代码),以尽量接近内存中Python对象的大小。 您可能还需要检查关于pyobject(实际上表示所有python对象的内部C结构)的一些旧描述。 试试这个:
getsizeof()调用对象的 递归配方 另一种方法是使用泡菜。请参阅此问题副本的答案。 我对以下任何一项都没有任何个人经验,但只需简单搜索"python[内存]分析器"即可:
希望有帮助。 必须小心使用,因为对象的覆盖可能会误导用户。 使用bregman.suite,一些使用sys.getsizeof的测试将对象实例中数组对象(数据)的副本输出为大于对象本身(mfcc)。
对于大的物体,你可以使用一些粗糙但有效的方法:检查您的python进程在系统中占用了多少内存,然后删除该对象并进行比较。 这个方法有很多缺点,但它会给你一个非常大的物体非常快速的估计。 |
最新内容
相关内容
优化 Python 程序的内存占用
优化 Python 程序的内存占用,代码,数据,情况,培训,对象,字典,内存,垃圾,程序,机制,Python的垃圾回收机制通过引用计数来决定一个对象要不要被提升Python程序性能的好习惯
提升Python程序性能的好习惯,代码,名字,检测,数据,培训,模块,函数,变量,性能,对象,掌握一些技巧,可尽量提高Python程序性能,也可以避免不必要的Python类和对象
Python类和对象,代码,培训,对象,实例,定义,关键字,函数,问题,顶层,全名,刚接触python中的类和对象,我也和大多数小伙伴一样迷茫,不知道它和我所Python中JSON 对象有哪些特点?
Python中JSON 对象有哪些特点?,名称,信息,代码,培训,数据,观察,对象,嵌套,数组,特点,JSON对象的结构是什么样子呢?上面代码中的obj就是一个JSPython中的对象
Python中的对象,数据,连续,代码,培训,概念,对象,内存,类型,初始化,静态,Python中一切皆是对象。————GuidovanRossum(1989)这句话只要你学Python 性能剖分工具
Python 性能剖分工具,时间,工具,环境,分析,数据,代码,标准,人员,项目,培训,眼看着项目即将完成,却被测试人员告知没有通过性能测试,这种情况在Python对象的创建
Python对象的创建,单位,信息,培训,对象,函数,类型,指针,长度,内存,实例,python会用两种方法创建对象,一种是泛型API(AOL:AbstractObjectLayer),列举Python面向对象中带双下划线的
列举Python面向对象中带双下划线的特殊方法,信息,代码,培训,对象,属性,方法,实例,字符串,里边,内容,__new__:生成实例__init__:生成实例的属性_Python面向对象的基本概念
Python面向对象的基本概念,概念,信息,位置,新增,培训,属性,鸟类,定义,对象,方法,python使用类(class)和对象(object),进行面向对象(object-oriPython之面向对象的进一步拓展
Python之面向对象的进一步拓展,信息,对象,操纵,培训,名字,方法,性质,参数,属性,定义,我们熟悉了对象和类的基本概念。我们将进一步拓展,以便能Python性能分析
Python性能分析,代码,分析,对比,时间,工具,标准,注释,跨行,通用,报告,python标准库提供两个代码性能分析相关的模块,即timeit和cProfile/profiPython 条件对象
Python 条件对象,状态,培训,对象,条件,线程,方法,底层,发生,场景,典型,条件对象总是与某种类型的锁对象相关联,锁对象可以通过传入获得,或者在