python面试:使用cProfile剖析程序性能

news/2024/10/22 8:25:57/

我们需要安装tuna:pip install tuna

程序执行完毕后,我们会得到一个results.prof,在CMD中输入指令:“tuna results.prof”。

import time
import cProfile
import pstatsdef add(x, y):resulting_sum = 0resulting_sum += xresulting_sum += yreturn resulting_sumdef fact(n):result = 1for i in range(1, n+1):result *= ireturn resultdef do_stuff():result = []for x in range(10000000):result.append(x**2)return resultdef waste_time():time.sleep(5)print("Hello")if __name__ == "__main__":with cProfile.Profile() as profile:print(add(100, 5000))print(fact(70))print(do_stuff())waste_time()results = pstats.Stats(profile)results.sort_stats(pstats.SortKey.TIME)results.print_stats()results.dump_stats("results.prof")

结果如下:
在这里插入图片描述
我们可以看到,这个程序中最耗时的函数是waste_time(),用了约5s。其次是do_stuff(),用了3.8s。


http://www.ppmy.cn/news/1072664.html

相关文章

2023-08-29 LeetCode(带因子的二叉树)

2023-08-29每日一题 一、题目编号 823. 带因子的二叉树二、题目链接 点击跳转到题目位置 三、题目描述 给出一个含有不重复整数元素的数组 arr ,每个整数 arr[i] 均大于 1。 用这些整数来构建二叉树,每个整数可以使用任意次数。其中:每…

flink源码分析-获取最大可以打开的文件句柄

flink版本: flink-1.11.2 代码位置: org.apache.flink.runtime.util.EnvironmentInformation 调用位置: taskmanager启动类: org.apache.flink.runtime.taskexecutor.TaskManagerRunner long maxOpenFileHandles EnvironmentInformation.getOpenFileHandlesLimit(); …

各个微服务模块之间互相依赖调用的问题

首先是模块之间不能够循环引用,否则会报循环依赖引入的错误。 没有了模块之间的相互依赖,在项目中这两个模块是相互调用的,分别各自定义相应的Feign接口,如下: 最开始写的运行报错的代码如下: FeignCli…

idea --Git Commit Template插件

Git Commit Template是一款免费的IntelliJ IDEA插件,用于提供Git提交模板。该插件可以帮助开发者编写规范的Git提交信息,提高代码管理效率。 首先安装插件: 使用Git Commit Template插件: 注:long description和Breaking changes…

(三)行为模式:6、备忘录模式(Memento Pattern)(C++示例)

目录 1、备忘录模式(Memento Pattern)含义 2、备忘录模式的UML图学习 3、备忘录模式的应用场景 4、备忘录模式的优缺点 (1)优点: (2)缺点 5、C实现备忘录模式的实例 1、备忘录模式&#…

渗透测试漏洞原理之---【任意文件上传漏洞】

文章目录 1、任意文件上传概述1.1、漏洞成因1.2、漏洞危害 2、WebShell解析2.1、Shell2.2、WebShell2.2.1、大马2.2.2、小马2.2.3、GetShell 3、任意文件上传攻防3.1、毫无检测3.1.1、源代码3.1.2、代码审计3.1.3、靶场试炼 3.2、黑白名单策略3.2.1、文件检测3.2.2、后缀名黑名…

无涯教程-Android - Linear Layout函数

Android LinearLayout是一个视图组,该视图组将垂直或水平的所有子级对齐。 Linear Layout - 属性 以下是LinearLayout特有的重要属性- Sr.NoAttribute & 描述1 android:id 这是唯一标识布局的ID。 2 android:baselineAligned 此值必须是布尔值,为…

Localsolver求解器性能大提升,问题标杆研究

LocalSolver性能大提升,12.0发布! 车辆路由问题 在1分钟的运行时间内,1,000次交货的车辆路径优化问题得到了近乎最优的解决。下面提到的“差距”是LocalSolver 12.0在标准服务器(Intel Xeon E3-1230处理器,4核,3.6 G…