繁体   English   中英

我如何分析带有 if 语句的 for 循环的 function 的运行时间?

[英]How do i analyze the running time of a function with a for loop with an if statement?

例如,让 function 包含:

def myfunc():
    total = 0
    for i in range(0, n):
       total+=i
       if total >= n:
         return total
    return 0

运行时间是多少?

我似乎想不出一种方法来分析这个问题。

您可以定义自己的装饰器,如下所示:

def timed_function(f):
    def wrapper(*args, **kwargs):
        import time
        start_time = time.time()
        result = f(*args, **kwargs)
        elapsed = time.time() - start_time
        print("{} took {} seconds to run.".format(f, elapsed))
        return result
    return wrapper


@timed_function
def adding():
    a = 0
    for i in range(10000000):
        a = a + 1
    return a

adding()

<函数添加到 0x0000023711A0EE50> 运行耗时 0.49866580963134766 秒。

编辑:也许你只需要基础知识? 然后导入时间模块,在运行你的代码之前和之后进行测量,然后打印结果。 例如:

import time

start_time = time.time()

#your code goes here

end_time = time.time()
time_elapsed = end_time - start_time
print("Took", time_elapsed)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM