gpt4 book ai didi

python - 如何使此任务提高 cpu 使用率?

转载 作者:行者123 更新时间:2023-12-05 04:27:52 37 4
gpt4 key购买 nike

我尝试对许多文件进行哈希处理,但它没有使用满 CPU 能力。它只消耗25%。我测试将繁重的进程移动到线程中。但仍然没有什么不同。我来自 nodejs 使用 sharp 库。有同样的任务。它消耗所有的CPU使用率。 python如何让它发挥最大的作用?

import cv2
import math
import datetime
import hashlib
import threading

def thread_function(image, yPos, xPos, wSizeBlock, hSizeBlock):
block = image[yPos:yPos+wSizeBlock, xPos:xPos+hSizeBlock]

hash = hashlib.sha256()
hash.update(block.tobytes())
print(hash.hexdigest())

image = cv2.imread('frame323.jpg', cv2.IMREAD_COLOR)
dimension = {
'width': image.shape[1],
'height': image.shape[0]
}

wSizeBlock = int(16)
hSizeBlock = int(16)
wBlockLength = math.floor(dimension['width'] / wSizeBlock)
hBlockLength = math.floor(dimension['height'] / hSizeBlock)
count = 0

start_time = datetime.datetime.now()
print(start_time)
for k in range(0, 500):
for i in range(0, wBlockLength):
for j in range(0, hBlockLength):
xPos = int(i*wSizeBlock)
yPos = int(j*hSizeBlock)

x = threading.Thread(target=thread_function, args=(image, xPos, yPos, wSizeBlock, hSizeBlock))
x.start()
count += 1
count = 0

end_time = datetime.datetime.now()
print(end_time)

最佳答案

对于可以拆分为较小任务的 CPU 密集型操作,您可能需要使用多处理模块。它类似于线程模块,因为它允许同时运行多个函数。语法看起来像这样:

import multiprocessing as mp


def add(a, b):
return a + b


p = mp.Process(target=add, args=(1, 2))
p.start()

关于python - 如何使此任务提高 cpu 使用率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72749892/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com