如何以最快的方式在python 3中的一个非常大的bytearray上执行下一个操作?

loading...


0

我为一个程序编写代码,该程序将使用带有'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

或者您可能知道更快的解决方案?

loading...

0回答

No Data

评论

暂时没有评论!