Python需要一个运行几秒钟的函数来测试多处理

2024-04-20 14:03:29 发布

您现在位置:Python中文网/ 问答频道 /正文

愚蠢的问题

我想尝试多重处理

我想做一个基本的测试

for x in range(10):
    p = Process(target=func, args=(100))
    p.Daemon = True
    p.start()
    p.join()

我正在寻找一个运行几秒钟的func函数,这样我就可以检查基本功能是否正常工作。理想情况下,它会占用大量CPU,因此我可以用htop检查它是否真的使用了多个处理器

我试过阶乘

def func(n):
    if n == 0:
        return 1
    else:
        return n * factorial(n-1)

但是我不能做超过1000次的递归,这还不够长

有没有想过一个简单的函数需要5秒才能运行,我可以用它来做一个简单的多处理器测试


Tags: 函数intruetargetforreturnargsrange
1条回答
网友
1楼 · 发布于 2024-04-20 14:03:29

你可以用很多方法来实现它。。。例如,可以在循环中重复写入文件

import time

start = time.time()
for x in range (30000):
    file = open("testfile.txt", "w")
    file.write("Hello World" + str(x))
    file.close()

end = time.time()
print(end - start)

这个功能在我的机器上大约需要8秒

或者,您可以在一个循环中睡眠一秒钟,如果您不必使用如下所示的CPU

import time
for i in range(5):
    time.sleep(1)

另一种方法是测量经过的时间,并在所需的秒数后中断。这种方法使CPU保持繁忙,并且没有任何必须写入磁盘的副作用

import time

start = time.time()
while True:
    t = time.time() - start
    if t > 5:
        break

相关问题 更多 >