我正面临以下项目。我想在执行一组性能测试套件时创建显示cpu和内存级别的图片。我很感激任何建议。
目前我正在考虑的唯一方法是使用命令top或python模块psutil并与测试并行执行它们。但是我想知道是否已经存在更好的方法,可能是py.test插件。
很高兴能够将这些参数从一个执行与另一个执行进行比较。
测试在Linux(Ubuntu)下执行。
答案 0 :(得分:1)
有很多方法可以实现这一目标,包括获取广泛的系统统计数据,然后对它们进行平均(顶部),使用处理器硬件计数器(例如使用英特尔VTune)。
psutil看起来非常好。我唯一的评论是确保你进行多次测量,然后平均它们以消除虚假尖峰等。
进行这些测量的其他一些可行方法是/proc/[pid]/stat(参见手册页),time,或者如果您真的很痴迷,可以使用一些编程技术,例如Windows。
这里有good discussion关于以编程方式获取基准值的问题。它还讨论了一些你可以进入的陷阱,即使你没有使用编程方法,也应该熟悉这些陷阱。
英特尔有很多关于处理器基准测试的好信息;它是他们的面包和黄油。
我能做的唯一其他评论是你需要仔细选择你的基准。英特尔强调CPU,因为它是他们最擅长的。其他公司也是如此。事实上,根据应用领域,有大量的other important factors可以发挥作用。
查看基于媒体的不同基准。它们可能比简单地基于处理器时间更合适。我不能轻易找到基准,但是bing是一个奇迹。
答案 1 :(得分:1)
有两种有用的工具可用于函数的逐行计时和内存消耗:
安装很简单
$ pip install line_profiler memory_profiler
要进行性能分析,请使用@profile
修饰您的函数,然后运行
$ python -m memory_profiler example.py
或$ python -m line_profiler example.py