我试图准确地确定将二进制数据解压缩为可查看格式的方法更快。我试图使用时间模块这样做。我正在使用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
只有两个输出正如预期的那样。关于它为何如此表现的任何想法?