为啥 sys.getsizeof() 返回的值比实际大小大 33 个字节?
Posted
技术标签:
【中文标题】为啥 sys.getsizeof() 返回的值比实际大小大 33 个字节?【英文标题】:Why does sys.getsizeof() return a value that is 33 bytes more than the actual size?为什么 sys.getsizeof() 返回的值比实际大小大 33 个字节? 【发布时间】:2020-09-21 11:53:25 【问题描述】:以下代码返回 35 作为答案:
print(sys.getsizeof((1024).to_bytes(2, byteorder='big')))
不应该 int.to_bytes() 返回 1024 的字节表示,它是 2 个字节长,因为文档提到:
The integer is represented using length bytes. An OverflowError is raised if the integer is not representable with the given number of bytes.
我理解错了什么?
【问题讨论】:
【参考方案1】:我相信您忽略了在创建每个 python 对象时所带来的垃圾收集器开销。另外请注意,sys.getsizeof()
不计算对象引用的对象的大小。
【讨论】:
有没有什么方法可以只获取对象大小而没有任何开销? 没有简单的方法。请参阅***.com/questions/33978/… 了解更多信息以上是关于为啥 sys.getsizeof() 返回的值比实际大小大 33 个字节?的主要内容,如果未能解决你的问题,请参考以下文章
MySQL 查询调优 - 为啥使用变量中的值比使用文字慢得多?
Python 获得对象内存占用内存大小 sys.getsizeof
在 Python 中准确测量对象大小 - Sys.GetSizeOf 不起作用