【发布时间】:2021-01-14 19:26:22
【问题描述】:
我正在处理大文件(超过 2Gb)并且我有很多处理函数来处理数据。 我的问题是完成处理需要很多(很多)时间。从所有功能来看,似乎需要更长的时间是这个:
def BinLsb(data):
Len = len(data)
databin = [0] * (int(Len))
num_of_bits = 8
###convert to bin the octets and LSB first
for i in range(Len):
newdatabin = bin(int(data[i], 16))[2:].zfill(num_of_bits)[::-1]
databin[i] = newdatabin
###group the 14bit and LSB again
databin = ''.join(databin)
composite_list = [databin[x:x + 14] for x in range(0, len(databin), 14)]
LenComp = len(composite_list)
for i in range(LenComp):
composite_list[i] = (int(str(composite_list[i])[::-1], 2))
return composite_list
非常感谢一些性能提示/该算法的另一种方法,以便为我节省一些时间。提前致谢!
【问题讨论】:
-
最好有一个完整的可运行示例。这还包括正确形状和 dtype 的(随机)输入数据。 Cython 或 Numba 可以在这里提供帮助,但需要完全重写函数。
标签: python list performance binary cpu-speed