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

时间:2018-02-27 04:21:27

标签: 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次的递归,这还不够长。

有任何关于运行的简单函数的想法,我可以使用它来进行简单的多处理器测试吗?

1 个答案:

答案 0 :(得分:1)

您可以通过多种方式实现它......例如,您可以在循环中重复写入文件

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