繁体   English   中英

如何在不同的机器上计算python程序的性能

[英]How to compute the performance of a python program on different machines

我想知道在2个不同系统上可以用来查找python代码性能的不同性能特征是什么。 还可以在其他机器上扩展其性能吗? 这种东西可能吗?

假设这两个系统之一是在GPU上进行计算,另一个是在CPU上,我想在支持CPU的其他系统上扩展python代码的性能。

也可以通过分析得出吗?

根据我的经验,基于性能分析的假设足以确定初始实例的大小/需求,然后使用实时遥测和仪器工具来密切监视那些解决方案。

我曾经使用过两种方式来降低性能(我所用的术语是胡言乱语):

  • 瓶颈的非正式表征这涉及非正式地了解您的应用程序可能存在的瓶颈,从而对容量/机器要求有一个非常粗略的了解。 如果您要在几乎没有网络的情况下执行CPU限制的计算,则可以绕开从网络优化的实例开始。 同样,如果您正在将处理具体化到文件系统,并且内存开销非常小或有限,那么您不需要高内存实例。

  • 外部性能实验这涉及创建性能测试工具以建立基线实验,允许您更改计算机变量以确定它们对程序性能的影响。 我喜欢通过吞吐量测试来设置基于队列的系统,即@ 10k请求/秒什么是队列饱和度,什么是服务时间。 它涉及将日志记录/遥测添加到代码中以记录这些数字。 还要设置一个积压,以了解单个实例处理积压的速度。

对于HTTP,有许多工具可以生成负载。

希望有一个自动化的工具来支持您的输入格式,但是如果没有,您可能必须编写自己的输入格式。

  • 性能分析

我认为这是使用“低级”工具科学地(与非正式分析相反)来确定您的代码在哪里花费时间的。 通常涉及使用python profiler来确定要花时间的例程,然后尝试对其进行优化。 http://www.brendangregg.com/linuxperf.html

对于此步骤,如果性能测试工具具有可接受的性能,则可以忽略此:p

  • 实时遥测确定可接受的性能和实例大小后,实时遥测对于了解程序如何实时执行到现实的工作负载至关重要。
    我发现吞吐量,处理计数,错误等对于维护高性能系统都是至关重要的: http : //www.brendangregg.com/usemethod.html

暂无
暂无

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

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