Краткая заметка о том, как применение функций кодирования двоичных данных из модуля base64 влияет на размер продуцируемых данных.
Не секрет, что кодирование двоичных данных при помощи функций транслирования в ascii влияет на размер получаемых в итоге данных. Давайте поглядим на сколько сильно это влияние — протестируем функции модуля base64 в Python 3:

from base64 import *
with open('/home/idle/binary.data', 'rb') as f:
data = f.read()
for method in [b64encode, b32encode, b16encode, a85encode, b85encode]:
percent = ((len(method(data)) * 100) / len(data)) - 100
print('%s: +%s%%' % (method.__name__, round(percent, 2)))
view raw b64sizes.py hosted with ❤ by GitHub

И вот, какие результаты получаются:

b64encode: +33.33%
b32encode: +60.0%
b16encode: +100.0%
a85encode: +25.0%
b85encode: +25.0%

Соберётесь хранить файлы в БД, вспомните этот тест.

Категории

Язык
Область

На заметку
У нас есть представительство в Facebook. Ссылка в самом низу страницы.