我目前正在使用struct.unpack来读取二进制文件。通常,我会阅读不同类型的值,所以我可能会阅读一些长信,然后阅读8个浮点数,然后读取2个短信,几个字节等等。
但它们通常分组很好,所以你可能得到一堆长片,然后是一堆花车,然后是一堆短裤等。
我已经阅读了几篇关于数组如何比unpack快得多的帖子,但是如果我经常使用不同的数组对象调用fromfile(我可能遇到的每种类型一个),我不确定是否存在显着差异。
有没有人做过任何性能测试来比较这两种情况?
答案 0 :(得分:1)
听起来你处于最适合进行时间试验的位置。您已经拥有struct.unpack
版本,因此请创建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
是执行所有处理的函数。