0

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

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

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

4

0 回答 0