如何在Python中分析某个函数

如何在Python中分析某个函数,python,psutil,Python,Psutil,我已经编写了一个基于命令行的应用程序,希望在每个模块运行时对其进行评测。它是一个单线程的应用程序,模块是做一些事情的函数调用。我需要测量函数所用的时间,函数的平均cpu使用率,函数的平均内存使用率。 我可以通过测量系统时间和通话前后的时间来测量所用的时间。(或使用cprofile) 但我想不出任何能正确提供其他数据的东西。 我已经阅读了python内置的资源模块,但是我希望应用程序是跨平台的(windows和linux),并且linux中没有资源模块。 我正在考虑使用psutil,但在阅读文档时

我已经编写了一个基于命令行的应用程序,希望在每个模块运行时对其进行评测。它是一个单线程的应用程序,模块是做一些事情的函数调用。我需要测量函数所用的时间,函数的平均cpu使用率,函数的平均内存使用率。 我可以通过测量系统时间和通话前后的时间来测量所用的时间。(或使用cprofile) 但我想不出任何能正确提供其他数据的东西。 我已经阅读了python内置的资源模块,但是我希望应用程序是跨平台的(windows和linux),并且linux中没有资源模块。 我正在考虑使用psutil,但在阅读文档时,我认为它不能满足我的需要。就像我在函数调用之前和之后调用process.cpu_percent(),它会给出函数的cpu使用率(两个cpu percent调用之间的cpu使用率差异)还是该时间点的cpu使用率。内存百分比似乎有点模糊


如何使用psutil测量我想要的内容?或者我可以使用psutil吗?或者是否有更适合我需要的模块?

您是否考虑过(或cProfile)模块?或者还有,是的,我考虑过cProfile。但问题是它只测量函数所花费的时间(以及递归调用的数量)。我需要通过函数来测量CPU使用率和内存使用率。我的主要动机是向用户提供一些统计数据(以及我要分析的数据),因为程序可能需要一段时间才能运行。如果输入数据很大。不过,我不需要深入分析。类似于我们在windows任务管理器的“进程”选项卡中看到的内容。存在CPU使用情况和专用工作集(内存使用情况)