CPU使用率随时间增加

时间:2011-09-15 15:52:54

标签: python performance

我有一个运行了很多天的python程序。内存使用量不会增加太多,但程序变得越来越慢。是否有工具或实用程序列出所有函数调用以及完成所需的时间?像guppy/heapy这样的东西,但用于CPU使用。

2 个答案:

答案 0 :(得分:2)

EDIT2

我刚刚看到您的实际问题已在'How can you profile a Python script?'

中得到解答

当然,请使用profile.py。

import profile

def myfunction():
    bla bla bla

profile.run('myfunction()')

另请参阅profilerstips on performance

修改: 以上示例适用于一个功能。 您可以使用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

答案 1 :(得分:0)

获取流程的pid

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

然后看看程序中的哪些调用花费了更多时间。

strace -c -p“pid”

您甚至可以使用

运行整个脚本

strace -c script.file