繁体   English   中英

在py.test执行期间分析cpu和内存使用情况

[英]Profile cpu and memory usage during py.test execution

我正面临以下项目。 我要创建一组执行性能测试套件的过程中显示CPU和内存级别的图片。 我将不胜感激任何建议。

目前,我正在考虑的唯一方法是使用命令top或python模块psutil并在测试中并行执行它们。 但是我想知道是否已经存在更好的方法,可能是py.test插件。

一个不错的选择是能够比较一个执行到另一个执行的参数。

测试在Linux(Ubuntu)下执行。

从获取广泛的系统统计信息然后取平均值(顶部)到使用处理器硬件计数器(例如,使用Intel VTune),有很多方法可以使用。

psutil看起来非常好。 我唯一的评论是确保您进行了多次测量,然后对它们进行平均以消除杂散峰值等。

/ proc / [pid] / stat (请参见手册页), 时间或其他一些进行这些测量的可能方法,或者如果您真的很着迷,则可以使用一些编程技术,例如Windows

这是有关以编程方式获取基准值的很好的讨论 它还讨论了您可能会遇到的一些陷阱,即使您没有使用编程方法,也应该熟悉这些陷阱。

英特尔拥有很多有关处理器基准测试的信息。 是他们的面包和黄油。

我只能发表的其他评论是,您需要仔细选择基准。 英特尔强调CPU,因为这是他们最擅长的。 其他公司也是如此。 实际上,取决于应用程序域,还有许多其他重要因素在起作用。

查看不同的基于媒体的基准。 它们可能比仅基于处理器时间的方法更为合适。 我无法轻易找到基准,但是bing是一个奇迹。

有两个有用的工具可用于逐行计时和功能的内存消耗:

安装容易

$ pip install line_profiler memory_profiler

要进行分析,请使用@profile装饰您的函数,然后运行

$ python -m memory_profiler example.py$ python -m line_profiler example.py

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM