首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

使用 cProfile 和火焰图调优 Python 程序性能

测量程序的性能之前并没有实际做过,Google 了一番,感觉标准库的 cProfile 似乎值得一试。...cProfile 有多种调用方法,可以直接从命令行调用: python -m cProfile -s tottime your_program.py 其中的 -s 的意思是 sort。...不过在这里,我们并不能直接使用命令行方式调用,因为我的代码中还需要一些比较繁重的配置加载,如果把这部分时间算进去了,多少有些干扰,那么我们也可以直接在代码中调用 cProfile。...使用 cProfile 的代码如下: import cProfile, pstats, io pr = cProfile.Profile() pr.enable() extractor.extract...从 cProfile 的表格现在已经看不出什么结果来了,下一步我们开始使用火焰图,可视化往往能让我们更容易注视到性能瓶颈。(为什么不一开始就用火焰图呢?因为我以为很麻烦。。

94620

Python自带的调试及性能分析神器

使用 cProfile 进行性能分析 除了要对程序进行调试,性能分析也是每个开发者的必备技能。...当然,这并不需要你花费特别大的力气,在 Python 中,这些需求用 cProfile 就可以实现。...那么,我就只需在开头导入 cProfile 这个模块,并且在最后运行 cProfile.run() 就可以了,如下所示: import cProfile def fib(n): if n ==...('fib_seq(30)') 或者更简单一些,直接在运行脚本的命令中,加入选项“-m cProfile”也很方便: python -m cProfile test.py 运行结果如下: (py37env...这只是个简单的例子,便是 cProfile 的基本用法,当然,cProfile 还有很多其他功能,还可以结合 stats 类来使用,你可以阅读相应的官方文档来了解。

2K10

Python - 性能分析 profile 使用方法

简介 代码优化的前提是需要了解性能瓶颈在什么地方,程序运行的主要时间是消耗在哪里,对于比较复杂的代码可以借助一些工具来定位,python 内置了丰富的性能分析工具,如 profile, cProfile...Python 标准模块提供三种 profilers:cProfile, profile 以及 hotshot。...性能分析方法 引入python自带的profile或cProfile import cProfile # or import profile 确定需要分析性能的函数 def sub_fun(...运行命令查看性能分析结果 python -m cProfile test.py 将性能分析结果保存到result文件 python -m cProfile -o result.prof test.py...保存运行时间数据 注意:要用cProfile,使用 profile 会导致 snakeviz 无法读取日志 相关错误信息: Traceback (most recent call last): File

1.4K20

Python 中连接字符串效率最高的方式是哪种呢?

list = ['1', '2', '3'] result = '+'.join(list) print(result) 运行结果: 1+2+3 接下来,我使用 cProfile 来分析这种连接字符串所消耗的时间...cProfile 输出的结果是以秒为单位,而短字符串连接时间太短,输出结果都是 0.000 秒。所以我将字符串分别乘以 100000 变成长字符串。这样方便我们更加直观地观察结果。...以下是测试代码: # -*- coding:utf-8 -*- import cProfile # 使用 "+" 运算符连接 def concat_way1(): fir = 'Hello'...('concat_way1()') cProfile.run('concat_way2()') cProfile.run('concat_way3()') cProfile.run...('concat_way4()') 最后 cProfile 统计结果是: 从结果上看,跟我们设想的不太一样,有点出乎我们的意料。

1.6K20
领券