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

Python获取对象所占内存大小方法:sys.getsizeof()内置函数__sizeof__()先上代码看看结果import sysclass A(object): passclass 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__, sy
摘要由CSDN通过智能技术生成

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

  1. sys.getsizeof()
  2. 内置函数__sizeof__()

先上代码看看结果

import sys

class A(object):
    pass
class B:
    pass


for 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

可以看出两个方法所

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: 要查看Python对象的内存占用,可以使用以下方法: 1. 调用对象的内置属性`obj.__sizeof__`来获取对象的大小。 2. 使用Python的sys模块中的`sys.getsizeof(obj)`函数来获取对象的大小。 3. 使用Python内置的`total_size(obj)`函数来获取对象及其引用的所有对象的总大小。\[1\] 关于Python脚本运行时内存越来越大的问题,这可能是由于内存泄漏导致的。内存泄漏是指在程序运行过程中,分配的内存没有被正确释放,导致内存占用不断增加。解决这个问题的方法有: 1. 使用`del`关键字手动删除不再使用的变量,以释放其占用的内存。 2. 调用`gc.collect()`函数来手动触发垃圾回收,清理不再使用的对象。 3. 检查代码中是否存在循环引用的情况,即两个或多个对象相互引用,导致无法被垃圾回收。 4. 使用内存分析工具,如`memory_profiler`来定位内存泄漏的具体位置,并进行修复。\[2\]\[3\] 通过以上方法,您可以查看Python对象的内存占用,并解决Python脚本运行时内存越来越大的问题。 #### 引用[.reference_title] - *1* [python 查看对象内存占用对象形状/长度的方法小结-__size__of,sys.getsizeof(),ndarray.size,ndarray....](https://blog.csdn.net/PSpiritV/article/details/123224519)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [【解决】Python程序运行时所内存越来越大](https://blog.csdn.net/qq_41858149/article/details/127581400)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值