Python CPU使用率随时间增加

Python CPU使用率随时间增加,python,performance,Python,Performance,我有一个运行了很多天的python程序。内存使用率没有增加多少,但是程序变得越来越慢。是否有一个工具或实用程序可以列出所有函数调用以及完成这些调用所需的时间?类似于但用于CPU使用 Edit2 我刚才看到你的实际问题被回答为“ 当然,使用profile.py import profile def myfunction(): bla bla bla profile.run('myfunction()') 另见和 编辑: 上面的例子只针对一个函数。 您可以使用cProfile从命令行

我有一个运行了很多天的python程序。内存使用率没有增加多少,但是程序变得越来越慢。是否有一个工具或实用程序可以列出所有函数调用以及完成这些调用所需的时间?类似于但用于CPU使用

Edit2

我刚才看到你的实际问题被回答为“


当然,使用profile.py

import profile

def myfunction():
    bla bla bla

profile.run('myfunction()')
另见和

编辑: 上面的例子只针对一个函数。 您可以使用cProfile从命令行配置和运行脚本,方法是:

python -m cProfile myscript.py
您的程序/脚本在运行时也可以如下所示:

def myfunction():
    for i in range(100):
        print(i)

def myotherfunction():
    for i in range(200):
        print(i)

def main():
    """ main program to run over several days """
    for _ in range(3):
        myfunction()

    myotherfunction()

if __name__ == '__main__':
    profile.run('main()') # will execute your program
                          # and show profiling results afterwards

获取进程的pid

ps-ef | grep“processname”| awk'{print$2}

然后查看程序中的哪些调用占用的时间更长

战略-c-p“pid”

您甚至可以使用


strace-c script.file

cProfile在标准库中。但是我想在几天内对我的整个应用程序运行它+1.无论如何,您可以,但由于开销的原因,它可能会使您的程序速度更慢。你不能运行一段时间,检查瓶颈在哪里并解决它们吗?