首页 > 其他分享 >性能测试

性能测试

时间:2023-08-13 09:00:55浏览次数:45  
标签:调用 测试 代码 cProfile 性能 运行 函数

性能测试

cProfile

Python代码性能分析之cProfile

Python编程时,除了要保证代码功能的正确性,还要考虑代码的执行效率。

什么是cProfile

cProfile(语言编写的测试模块)是一个标准库内建的性能分析工具,可以在标准输出中看到每一个函数被调用的次数和运行的时间,从而找到程序的性能瓶颈,从而有针对性的进行性能优化。

可以使用cProfile的run方法来计算代码的执行效率,也可以在cmd执行

python -m cProfile filename.py命令来实现,其中filename.py 是要运行程序的文件名。

在pycharm中执行如下代码

图片

运行后结果如下:

图片

第一行是总共调用function次数,和总运行时间

「下面是cProfile输出的各个参数说明」

ncalls:函数调用次数;

tottime:函数的总的运行时间,除掉函数中调用子函数的运行时间;

percall:函数运行一次的平均时间等于 tottime/ncalls;

cumtime:表示该函数及其所有子函数的调用运行的时间,包含了子函数的运行时间;

percall:函数运行一次的平均时间,等于 cumtime/ncalls;

filename:lineno(function):每个函数调用的具体信息,函数所在的文件名称、代码行数、函数名称等;

怎么优化代码的性能呢

「下面这几点建议大家可以参考下:」

  • 减少函数调用的数量
  • 减少函数的调用层次
  • 使用内置函数和库
  • 避免使用全局变量

标签:调用,测试,代码,cProfile,性能,运行,函数
From: https://www.cnblogs.com/simpleness/p/17626102.html

相关文章

  • 了解用户需求与反应:Striff.ai 用户测试平台
    在产品开发的早期阶段就能够了解用户的需求和反应是每个项目团队梦寐以求的。然而,在编码之前很难准确地预测用户对产品的感受和期望。现在,有一个革命性的人工智能用户测试平台——Striff.ai可以帮助你实现这一目标。Striff.ai是什么?Striff.ai是一家创新的人工智能用户测试平台......
  • oracle归档日志暴增原因分析,Oracle归档日志满导致数据库性能异常慢 转发 https://b
    ============= oracle数据库archivelog暴增分析====================前言归档量突然增长到981G/天,导致归档目录使用率告警归档日志量异常暴增会导致磁盘空间爆满,数据库异常1、归档日志量统计SELECTTRUNC(FIRST_TIME)"TIME",SUM(BLOCK_SIZE*BLOCKS)/1024/1024/102......
  • ASPICE流程编码和单元测试
    ASPICE流程编码和单元测试是指根据详细设计,编写符合ASPICE标准的代码,并对每个模块进行单元测试。这一过程包括以下步骤:编写代码:根据详细设计,编写符合ASPICE标准的代码,确保代码质量和可维护性。代码审查:对编写好的代码进行审查,发现并纠正潜在问题,确保代码质量和可靠性。单元测试计划......
  • 【我和openGauss的故事】openGauss索引推荐功能测试
    _openGauss2023-07-2818:22发表于四川收录于合集#第六届openGauss技术文章征集初审合格文章62个一、单索引推荐单索引推荐功能,目前支持select查询,看官方介绍类似oracle中的sql_tunning_adviser,不过只是推荐创建索引。根据sql优化原理,猜测应该时根据选择来推荐索引。1、查看sql......
  • 20230812巴蜀暑期集训测试总结
    T2考场先是想到(根本没想)了一个\(O(n^5)\)的思路,然后猜了一个比较好打的结论开打。结果小样例和答案差一点,大样例就差的多了。确认不是精度问题后就明显是猜的结论有问题了。这下是彻底没办法了,只有打了那个\(O(n^5)\)的暴力。出分我一看——怎么挂了\(20pts\)?而且按照暴力......
  • 2023.8.12测试
    \[\text{暑假NOIP模拟赛-6}\]终于没挂分了T1打工有\(n\)个工作,做一个工作要消耗一个时间单位,可以获得价值\(a_i\),截止日期\(b_i\),求\(T\)单位时间内最多获得多少价值\(1\leqn\leq10^6\),\(1\leqa_i,b_i\leqT\leq10^9\)先按照时间从小到大排序,然后倒序枚举,将两个时......
  • 代码分析性能分析
    三种方法分析代码性能#三种方式来分析代码#1.Python位置模块dis来查看编译出的CPU指令importdiscode="""a=5a+=1"""print(dis.dis(code))#2.使用码农高天的viztracer来分析#https://github.com/gaogaotiantian/viztracer'''BasicUsageviztrace......
  • Typora 激活教程(2023最新图文教程,测试有效)
    下载Typora激活补丁下载地址 https://kdocs.cn/l/chV3CWzeXgdE下载成功后解压,目录如下:typora激活补丁目录,选择第二种方式Typora激活补丁包解压目录安装Typora作者在写这篇教程的时候,Typora最新版本号为1.3.8,通过如下链接下载Typora,下载成功后,直接双击安装即可:......
  • 20230810巴蜀暑期集训测试总结
    T1考场打的是一个伪正解(没正确性的那种),评测的时候发现有subtask人都给我吓傻了,还好还有\(50pts\)。就是不知道为什么zxc和我思路一样但是有\(85\)pts。这个正解确实有点难想,而且证明正确性也比较困难。关于题解的正确性:若\(a\)的逆元不是本身。那么如果\(a^{-1}\)......
  • Java+Excel+POI+testNG基于数据驱动做一个简单的接口测试【杭州多测师_王sir】
    一、创建一个apicases.xlsx放入到eclipse的resource里面,然后refresh刷新一下二、在pom.xml文件中加入poi和testng的mvnrepository、然后在eclipse的对应目录下放入features和plugins,重启eclipse就可以看到testNG了<!--poiexcel解析--><dependency>......