2011-07-07 47 views
1

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

但它们通常很好地分组,因此您可能会得到一堆长裤,然后一堆花车,然后一堆短裤,等等。

我读过几篇关于数组如何比解压缩更快的文章,但我不确定是否会有一个重要的不同的,如果我不断调用fromfile与不同的数组对象(我可能遇到的每种类型一个)。

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

回答

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是做所有的处理功能。