python array.fromfile против struct.unpack

1

В настоящее время я использую struct.unpack для чтения двоичного файла. Часто я читал разные типы значений, поэтому я мог бы читать несколько длин, затем читать 8 поплавков, затем читать 2 шорта, пару байтов и т.д.

Но они, как правило, сгруппированы хорошо, поэтому вы можете получить кучу длинных, а затем кучу поплавков, а затем кучу шорт и т.д.

Я прочитал пару сообщений о том, как массивы выполняют намного быстрее, чем распаковка, но я не уверен, будет ли значительная разница, если я постоянно вызываю fromfile с разными объектами массива (по одному для каждого типа, с которым я мог бы столкнуться).

Кто-нибудь сделал какие-либо тесты производительности, чтобы сравнить их в этой ситуации?

Теги:
performance
binaryfiles

1 ответ

1
Лучший ответ

Похоже, вы находитесь в лучшем положении, чтобы выполнять время. У вас уже есть версия struct.unpack, поэтому array.fromfile версию array.fromfile а затем используйте модуль timeit для выполнения некоторых тестов. Что-то вроде этого:

python -m timeit -s "import struct_version" "struct_version.main()"

python -m timeit -s "import array_version" "array_version.main()"

где struct_version и array_version - ваши две разные версии, а main - это функция, которая выполняет всю обработку.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню