在python中,假设我们将一个整数保存为一个小endian byte对象,现在我们希望在每次迭代时将其加1。我们以下面的代码为例:
import struct
from time import time_ns as time
rng = range(0, int(1e8))
k = len(rng)
_intgr = 25468
intgr = _intgr
start = time()
for i in rng:
bb = struct.pack("<L", intgr)
# do something on bb
intgr += 1
end = time()
tot = (end-start)
it = tot/k #Nano Secs
print('Total time(s) :', tot/1e9, '(s)')
print('Each iteration takes:', it, '(ns)')
每次迭代占用我的CPU约400 ns。我想知道在python中这是否是最有效的方法。有没有一个直接的方法来对字节对象进行基本的计算,这样我就不必在每次迭代时调用struct.pack
我见过这样的代码,它们在字节对象上进行数学运算和按位操作,如以下代码之一:
bb = struct.pack('<L', 100)
cc = bb[0] << 4
dd = bb[0] + 1
在前面的示例代码中,这是否能够提高性能
目前没有回答
相关问题 更多 >
编程相关推荐