如何在不添加代码的情况下在PyCharm中计算脚本执行时间?

时间:2016-02-26 15:57:01

标签: python pycharm

目前我只是在我的代码周围添加以下几行:

import time
start_time = time.time()

# my code here

print "time elapsed: {:.2f}s".format(time.time() - start_time)

是否可以在不向我想要的每个脚本添加代码的情况下实现相同的目标?在运行配置中添加内容还是使用插件?

4 个答案:

答案 0 :(得分:24)

您可以通过点击“个人资料”按钮来分析您的脚本(它位于“运行”,“调试”和“运行覆盖”按钮的右侧):

Profile button

在输出中,您将找到脚本本身的名称以及运行它所需的时间。

注意:该功能在适用于Linux平台的PyCharm PROFESSIONAL 2017.1中可用;其他安装可能不提供探查器按钮。

答案 1 :(得分:2)

我知道已经晚了,但是我想要同样的东西,这就是我所做的:

在代码目录中创建另一个python文件:

import time
st=time.time()
import test
print("----%.2f----"%(time.time()-st))

其中test是您的程序名称。 因此,如果您想运行任何程序,只需更改测试即可从此处运行。

请记住,如果您不使用import,则可以正常运行代码:

if __name__=="__main__":

答案 2 :(得分:2)

由于不是每个人都具有可以测量脚本运行时间的PyCharm Pro,因此这里是一个使用装饰器的简单解决方案。我们只需要添加一行代码即可测量任何函数的运行时间,如下所示:

import time

def timeit(func):
    """
    Decorator for measuring function's running time.
    """
    def measure_time(*args, **kw):
        start_time = time.time()
        result = func(*args, **kw)
        print("Processing time of %s(): %.2f seconds."
              % (func.__qualname__, time.time() - start_time))
        return result

    return measure_time

@timeit
def func():
    for _ in range(3):
        time.sleep(1)

if __name__ == "__main__":
    func()

输出:

Processing time of func(): 3.00 seconds.

答案 3 :(得分:0)

只需编写相应的单元测试(适用于社区版)。

from unittest import TestCase

from yourscript import yourcode

class TestSol(TestCase):
    def benchmark(self):
        res = yourcode('banana')
        self.assertEqual(res, 77)

PyCharm整齐地显示每次测试所用的时间。

另一种解决方案是用time包装解释器。
但是,由于它会在其他方面有所帮助,因此我建议您走单元测试之路。