我目前正在使用struct.unpack读取二进制文件。通常,我会读取不同类型的值,因此我可能会读取一些long,然后读取8 float,然后读取2 short,几个字节,等等。

但是它们通常被很好地组合在一起,所以您可能会得到一堆多头,然后是一堆花车,然后是一堆短裤,等等。

我已经阅读了几篇关于数组如何比解压缩更快地执行性能的文章,但是不确定如果我不断使用不同的数组对象(可能遇到的每种类型调用一个对象)来调用fromfile,是否会有显着差异。

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

最佳答案

听起来您处于进行时间考核的最佳位置。您已经具有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是执行所有处理的函数。

07-24 21:12