我为一个程序编写代码,该程序将使用带有'bytes'数据的非常大的文件(例如4GB用于x = 2048,y = 2048,时间= 1000,代码如下) . 在某些情况下,它可能高达16GB文件 . 我确信使用多处理可以将absolute_bytearray(数据)加速至少四次:
How to Multi-thread an Operation Within a Loop in Python
如何为我的代码应用多处理?
from time import perf_counter
from random import getrandbits
x = 512
y = 512
time = 200
xyt = x*y*time
creation_start = perf_counter()
my_by = bytearray(getrandbits(8) for x in range(xyt))
creation_end = perf_counter()
print('creation my_by time = %.1f' % (creation_end - creation_start))
def absolute_bytearray(data):
for i in range(len(data)):
if data[i] > 127:
data[i] = 255 - data[i]
return data
start = perf_counter()
absolute_bytearray(my_by)
end = perf_counter()
print('time abs my_by = %.2f' % (end - start)) # around 6,70s for 512*512*200
或者您可能知道更快的解决方案?