python array.fromfile vs struct.unpack

时间:2011-07-07 18:33:20

标签: python performance binaryfiles

我目前正在使用struct.unpack来读取二进制文件。通常,我会阅读不同类型的值,所以我可能会阅读一些长信,然后阅读8个浮点数,然后读取2个短信,几个字节等等。

但它们通常分组很好,所以你可能得到一堆长片,然后是一堆花车,然后是一堆短裤等。

我已经阅读了几篇关于数组如何比unpack快得多的帖子,但是如果我经常使用不同的数组对象调用fromfile(我可能遇到的每种类型一个),我不确定是否存在显着差异。

有没有人做过任何性能测试来比较这两种情况?

1 个答案:

答案 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_versionarray_version是您的两个不同版本,main是执行所有处理的函数。