什么是分析和性能测试 python 代码的最佳实践和工具? [复制]

     2023-03-06     17

关键词:

【中文标题】什么是分析和性能测试 python 代码的最佳实践和工具? [复制]【英文标题】:Whats are best practices and tools for profiling and performance testing python code? [duplicate] 【发布时间】:2012-02-23 00:54:26 【问题描述】:

可能重复:How to profile my code?

什么是分析和性能测试 python 代码的最佳实践和工具? 这里有任何快速的胜利或建议。

CProfile 接缝很受欢迎,下面有一些很棒的注释/答案,都是非常好的答案/教程。投票吧,我会在一两天内选出前一个。谢谢@senderle 和@campos.ddc

一旦发现问题区域,是否有任何习语和/或提示可以转换代码以使其更快?

【问题讨论】:

很好的链接,谢谢瑞克。我会检查一下。除了 profiling 还有什么其他的习语吗? Here's a quick win. 【参考方案1】:

cProfile 是经典的分析工具。基本使用方式是like so:

python -m cProfile myscript.py

在这里,我在我编写的mersenne twister 的参考实现的测试例程中调用了它。

me@mine $ python -m cProfile mersenne.twister.py 
True
True
1000000
         1003236 function calls in 2.163 CPU seconds

   Ordered by: standard name

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
        1    0.000    0.000    2.163    2.163 <string>:1(<module>)
        1    0.001    0.001    2.162    2.162 mersenne.twister.py:1(<module>)
        3    0.001    0.000    0.001    0.000 mersenne.twister.py:10(init_gen)
  1000014    1.039    0.000    1.821    0.000 mersenne.twister.py:19(extract_number)
        1    0.000    0.000    0.000    0.000 mersenne.twister.py:3(Twister)
     1603    0.766    0.000    0.782    0.000 mersenne.twister.py:33(generate_numbers)
        1    0.000    0.000    0.000    0.000 mersenne.twister.py:4(__init__)
        1    0.317    0.317    2.161    2.161 mersenne.twister.py:42(_test)
        1    0.001    0.001    2.163    2.163 execfile
        1    0.000    0.000    0.000    0.000 len
        1    0.000    0.000    0.000    0.000 method 'disable' of '_lsprof.Profiler' objects
     1608    0.038    0.000    0.038    0.000 range

ncalls 是函数被调用的次数。 tottime 是函数花费的总时间,不包括子函数调用花费的时间。 percalltottime / ncallscumtime 是函数花费的时间包括子函数调用花费的时间。剩下的数据如下:filename:lineno(func_name)

在大多数情况下,首先查看ncallstottime。在上面的数据中,你可以看到这个程序花费的大部分时间都发生在extract_number。此外,我们可以看到 extract_number 被调用 many (1000014) 次。所以我能做的任何事情来加速extract_number 都会显着加速这个测试代码的执行。如果它让我获得了 微秒,那么增益将乘以 1000014,得到一整秒的增益。

那么我应该在generate_numbers 上工作。那里的收益不会那么重要,但它们可能仍然很重要,并且由于该功能会再消耗 0.7 秒,因此会有一些好处。

这应该会给你一个大致的想法。但是请注意,tottime 数字有时可能具有欺骗性,例如在递归的情况下。

【讨论】:

感谢 senderle,关于如何解释结果并采取行动的任何提示? @MattAlcock 您可能想查看有关 profiling 的 python 官方文档:docs.python.org/library/profile.html

黄金法则:mysql基准测试最佳实践(代码片段)

...子来展示几种实用的测试MySQL系统的实践方法。   为什么数据库管理员要在MySQL系统上运行基准测试呢?答案显而易见, 查看详情

7个pythonapi最佳实践

...讨论您应该遵循的7个PythonAPI最佳实践。API的最佳实践是什么?API的最佳实践是使其易于使用、安全和可扩展。一个好的API应该有清晰的文档、一致的命名约定和错误处理。它还应该在设计时考虑到安全性,并具有适当的身份验... 查看详情

性能测试最佳实践

软件性能故障会影响用户使用软件的体验,导致公司失去客户和收入,并限制了组织的扩展可能性。为了确保软件成功地处理预期的流量,并在用户活动激增时保持稳定,建议将性能测试纳入测试范围,并在... 查看详情

CSS3 - 性能最佳实践是啥? [关闭]

...CSS3-Whataretheperformancebestpractices?[closed]CSS3-性能最佳实践是什么?[关闭]【发布时间】:2011-11-2102:38:15【问题描述】:去年我花了很长时间阅读javascript性能、瓶颈和最佳实践。在我的最新项目中,我使用CSS3和javascript/jquery的后备来... 查看详情

在 php 应用程序中支持分析的最佳实践是啥?

...filinginaphpapplication?在php应用程序中支持分析的最佳实践是什么?【发布时间】:2012-07-2320:50:59【问题描述】:我正在为一个高性能phpweb应用程序启动一个新项目。我想在向应用程序添加功能时不断分析应用程序,这样我就能够在... 查看详情

dbunit 性能最佳实践

】dbunit性能最佳实践【英文标题】:dbunitbestpracticesforperformance【发布时间】:2012-01-1706:58:00【问题描述】:除了实际dbunit网站上推荐的那些之外,还有哪些可以大大加快测试速度并保持可维护性的最佳实践/原则?我渴望为java提... 查看详情

什么是特征缩放(标准化)和 LabelEncode 和 OneHotEncode 数据的最佳实践

】什么是特征缩放(标准化)和LabelEncode和OneHotEncode数据的最佳实践【英文标题】:whatisbestpracticeforfeaturescaling(Standardization)andLabelEncodeandOneHotEncodedata【发布时间】:2017-05-2105:48:11【问题描述】:这里我们有训练数据(x_train)和测试... 查看详情

临时维护页面的最佳实践方法和状态代码是啥?

...ymaintenancepages?临时维护页面的最佳实践方法和状态代码是什么?【发布时间】:2010-09-1503:56:18【问题描述】:对于不应暂时显示的网站/应用程序页面,最佳实践方法和最理想的HTTP状态代码是什么?概述可能的替代方案-将用户留... 查看详情

python在多行上访问嵌套字典的最佳pep-8实践是什么?(代码片段)

查看详情

最佳实践/性能:将 StringBuilder.append 与 String.concat 混合

...】:2012-04-2203:54:19【问题描述】:我试图了解最佳实践是什么,以及为什么在不同情况下连接字符串文字和变量。例如,如果我有这样的代码StringBuildersb=new 查看详情

性能测试最佳实践

软件性能故障会影响用户使用软件的体验,导致公司失去客户和收入,并限制了组织的扩展可能性。为了确保软件成功地处理预期的流量,并在用户活动激增时保持稳定,建议将性能测试纳入测试范围,并在... 查看详情

分析网页的最佳实践

...暂存阶段使用第三方工具和方法执行此操作的最佳方法是什么?有哪些可用的工具?【问题讨论】:【参考方案1】:一个很大的话题。PerformanceAnalysisf 查看详情

分析 React Native iOS 应用程序的最佳实践是啥?

...ofileanReactNativeiOSApp?分析ReactNativeiOS应用程序的最佳实践是什么?【发布时间】:2016-09-2613:42:45【问题描述】:分析ReactNativeiOS应用程序的最佳实践是什么?Theofficialdocs说我应该使用ApplexCode的仪器,但我真的找不到任何 查看详情

单元测试最佳实践:如何最大程度地利用测试自动化

...们还将讨论代码覆盖率、模拟依赖关系和整体测试策略。什么是单元测试?单元测试是测试应用程序的单个单元或组件的一种做法,目的是验证每个单元或组件是否正常工作。通常,一个单元应该只 查看详情

ci开发的最佳实践是什么?(代码片段)

...。我的问题是,构建和运行Jenkins工作的最佳做​​法是什么?是否有可能直接从Intellij运行?我们是否需要创建一个Jenkins项目,该项目应保存为存储库,然后将其部署到Jenkins机器上?我们是否需要使用一些Intellij插件才能与Jenki... 查看详情

c++最佳实践|6.性能(代码片段)

...具、代码风格、安全性、可维护性、可移植性、多线程、性能、正确性等角度全面介绍了现代C++项目的最佳实践。本文是该系列的第六篇。C++最佳实践:1.工具2.代码风格3. 安全性4. 可维护性5. 可移植性及多线程6. ... 查看详情

从应用看火山引擎ab测试(datatester)的最佳实践

...适用性首先来介绍一下A/B测试适用的场景,以及A/B平台长什么样子。A/B测试到底能做什么?有哪些业务场景? 大家可以从上图中的数字感受到在字节跳动A/B实验应用的广度和深度,并且这些数字还在继续快速上涨。A/B实验在... 查看详情

es最佳实践配置(代码片段)

Elasticsearch性能优化Elasticsearch是当前流行的企业级搜索引擎,设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。作为一个开箱即用的产品,在生产环境上线之后,我们其实不一定能确保其的性能和稳定... 查看详情