python中有没有办法检查一行代码已经运行了多长时间?此外,如果超过时间限制,则终止
很难解释整个用例。我有一个图书馆,它对狗和猫的图像进行分类。我不能修改原始库,因为它会产生很多不同的错误。所以我使用的是来自该库的单个函数调用
现在,让我们假设函数调用需要不同的时间来输出不同图像的结果。我想将时间限制为15秒,即,如果任何呼叫需要15秒或更短时间,则应正常运行,但如果超过15秒,则终止线路并退出
time.sleep()
可以用作模拟用例的示例。我的问题的等价物是,我希望time.sleep(14)
成功运行,但time.sleep(16)
应该在15秒后终止,而不是完成
我已经尝试从multiprocessing
使用Process
,但我只能在行花费足够的时间或超出限制时返回,我无法显式运行该函数。我有以下代码来检查它是否及时运行:
def run_with_limited_time(func, args, time):
p = Process(target=func, args=args)
p.start()
p.join(time)
if p.is_alive():
p.terminate()
return False
return True
但不知道如何获得实际函数调用的输出
一种安全(尽管性能稍差)的方法是将库包装为可调用程序,然后使用
subprocess
模块调用它(可能使用timeout(1)
来确保它终止)您可以使用
multiprocessing
将尽可能多的内容放入当前程序中相关问题 更多 >
编程相关推荐