1.调试和性能分析的主要场景
- 代码本身有问题,找到并修复
- 代码效率有问题,如过度浪费资源
- 开发新的future时,需要测试
2.用pdb调试
- 一般使用print()进行调试
我们一般使用print()直接在相应的代码段进行打印,这种方法只适用于小程序。每次代码的运行都很快,使用print()很方便。
不适用于大型程序,特别是一些需要反复运行调试、追溯上下文代码,才能找到错误根源的代码。调试效率极低。
- IDE内置的debug工具
如可以很方便地在程序中设置断点,待程序运行到相应的断点处,自动停下。然后一一查看各变量的值。
但,一般公司中,产品的开发与迭代,是多语言支持的,公司内部会开发许多接口将多语言结合起来。大部分时候,IDE对混合代码不支持断点调试功能。
- 如何使用pdb
官方文档:https://docs.python.org/3/library/pdb.html
3.用cProfile进行性能分析
官主文档:https://docs.python.org/3.7/library/profile.html
例如计算斐波拉契数列的例子: