我有一个字符串,我使用obj2
转换为二进制表示。
之后我希望str.encode('utf-8')
和getsizeof()
返回相同的值,但似乎len()
总是返回更大的值。
然后我通过套接字将这个二进制数据发送到node.js服务器并将它们存储在Buffer中。 sys.getsizeof()
和Buffer.length
都返回相同的值,在Python中等于Buffer.byteLength
值。
我无法弄清楚那里发生了什么以及为什么len()
与Buffer.byteLength
不一样。
我的数据并不总是字符串或可能有不同的编码,所以我想确保我知道字节大小,而不是字符。
答案 0 :(得分:3)
sys.getsizeof
返回对象占用内存的大小。这包括Python为了处理对象而需要的所有其他数据(例如,首先是字符串而不是整数的信息)。
例如,看到它对于空字符串有一定的大小:
>>> sys.getsizeof('')
49
甚至是None
:
>>> sys.getsizeof(None)
16