如何在Python中精准查询程序变量的实际内存占用情况
Python字符串变量内存占用查询方法
1. 标准库直接实现方案
用Python内置sys模块的getsizeof()方法即可直接查询对象占用的内存大小,该方法返回值单位为字节,示例代码如下:
import sys s1 = "a long string" s2 = "another long string" # 输出两个字符串的内存占用 print(f"s1 占用内存:{sys.getsizeof(s1)} 字节") print(f"s2 占用内存:{sys.getsizeof(s2)} 字节")
2. 方法说明
sys.getsizeof()统计的是Python解释器为该对象分配的总内存大小,包含Python字符串对象的固定开销:以CPython 3.10版本为例,空字符串本身就占用49字节,每增加1个ASCII字符,占用大小多增加1字节。- 如果仅需要统计字符串内容本身的字节数(不含对象开销),可以手动统计编码后的字节长度:
# 统计UTF-8编码下字符串内容的字节数 s1_content_size = len(s1.encode('utf-8')) s2_content_size = len(s2.encode('utf-8'))
3. 注意事项
sys.getsizeof()仅统计当前对象本身的内存占用,不会递归统计内部引用的其他对象的大小,不过字符串属于不可变基础类型,不存在内部引用,因此统计结果完全准确。
内容的提问来源于stack exchange,提问作者Rodrigo
相关产品推荐
相关产品推荐

