我想知道可以用来在两个不同系统上查找python代码性能的不同性能特征。还可以在不同的机器上扩展其性能吗?这种东西有可能吗?
让我们假设两个系统中的一个是在GPU上计算而另一个在CPU上 我想在启用CPU的不同系统上扩展python代码的性能。
这可以通过分析得出吗?
答案 0 :(得分:0)
根据我的经验,基于实际性能分析做出假设已足以识别初始实例大小/要求,然后使用实时遥测和仪器来密切监控这些解决方案。
我用过几种方式来改善表现(这些术语是我所构成的胡言乱语):
瓶颈的非正式表征 这涉及非正式地了解应用程序可能存在的瓶颈,以便对容量/机器要求进行非常粗略的了解。如果您在几乎没有网络的情况下执行CPU绑定计算,那么可以绕过从网络优化实例开始。此外,如果您正在实现对文件系统的处理,并且内存开销非常小或有限,那么您不需要高内存实例。
外部效果实验 这涉及创建性能测试工具以建立基线实验,允许您更改计算机变量以确定它们对程序性能的影响。我喜欢设置基于队列的吞吐量测试系统,即@ 10k请求/秒什么是队列饱和,什么是服务时间。它涉及将记录/遥测添加到代码以记录这些数字。还要设置积压工作,以了解单个实例处理积压的速度有多快。
对于HTTP,有许多工具可以生成负载。
希望有一个支持您输入格式的自动化工具,但如果没有,您可能需要自己编写。
我认为这使用“低级”工具来科学地(与非正式分析相对)确定代码花费时间的位置。通常需要使用python profiler来确定您花费时间的例程,然后尝试优化它们。 http://www.brendangregg.com/linuxperf.html
对于此步骤,如果性能测试工具具有可接受的性能,则可以忽略此项:p