Получить размер в байтах двоичных данных (python3.6) - PullRequest
0 голосов
/ 01 июня 2018

У меня есть строка, которую я преобразовал в двоичное представление, используя str.encode('utf-8').После этого я ожидаю, что getsizeof() и len() вернут одно и то же значение, но похоже, что sys.getsizeof() всегда возвращает большее значение.

Затем я отправляю эти двоичные данные через сокет на сервер node.js и сохраняюих в буфере.И Buffer.length, и Buffer.byteLength возвращают одно и то же значение, которое равно значению len() в Python.

Я не могу понять, что там происходит и почему Buffer.byteLength не одно и то жеas sys.getsizeof().

Мои данные не всегда являются строками или могут иметь различную кодировку, поэтому я хочу убедиться, что я знаю размер в байтах, а не в символах.

1 Ответ

0 голосов
/ 01 июня 2018

sys.getsizeof возвращает размер, который объект принимает в памяти.Сюда входят все дополнительные данные, которые нужны Python для работы с объектом (например, информация о том, что это строка в первую очередь, а не целое число).

Например, посмотрите, что он имеет определенный размердля пустой строки:

>>> sys.getsizeof('')
49

и даже для None:

>>> sys.getsizeof(None)
16
...