试图找出哪些是解包和格式更快导致零星的行为,为什么?

时间:2016-11-08 23:07:17

标签: python time unpack bitstring

我试图准确地确定将二进制数据解压缩为可查看格式的方法更快。我试图使用时间模块这样做。我正在使用bitstring模块,因为我发现这是解压缩i +使用位对齐数据时最简单的方法。这是一个很小的测试用例,可以看出哪种方式更快,因为我处理了数百万行。它需要以特定的方式显示,这就是格式化的原因。

from bitstring import BitArray
import time

s = BitArray('0x0081')
start = time.time()
for i in range(100000):
    test = s.unpack('uintle:16')
    temp = hex(test[0]).lstrip('0x').zfill(4)
end = time.time()
ttime = end-start
print("uintle " + str(ttime))

start = time.time()
for i in range(100000):
    hex_val = s.unpack('hex:16')
    temp = hex_val[0][2:]+hex_val[0][0:2]
end = time.time()
ttime = end-start
print("hex " + str(ttime))

在100万次循环上测试条件时,这是输出:

uintle 32.51800322532654
uintle 46.38693380355835
hex 131.79687571525574

它看起来没有效果,因为它打印两次输出,我无法弄清楚为什么会发生这种情况。 使用100,000个循环进行测试时,这是输出:

uintle 2.705230951309204
hex 6.699380159378052

只有两个输出正如预期的那样。关于它为何如此表现的任何想法?

0 个答案:

没有答案