查字典图书网
当前位置: 查字典 > 图书网 > 编程 > Python性能分析与优化 > 试读

Python性能分析与优化[试读]

1.1 什么是性能分析

就像在12秒内跑完100米障碍跑的人在婴儿时期需要先学爬一样,程序员在精通性能分析(profiling)之前需要先了解一些基础知识。因此,在我们探索Python程序的性能优化与分析技术之前,需要对相关的基础知识有一个清晰的认识。 只要你掌握了这些基础知识,就可以进一步学习具体的工具和技术。因此,这... 查看全部[ 1.1 什么是性能分析 ]

1.2 性能分析的重要性

现在我们已经知道了性能分析的涵义,还应该理解在产品开发周期中进行性能分析的重要性和实际意义。 性能分析并不是每个程序都要做的事情,尤其对于那些小软件来说,是没多大必要的(不像那些杀手级嵌入式软件或专门用于演示的性能分析程序)。性能分析需要花时间,而且只有在程序中发现了错误的时候才有用。但是,仍然可... 查看全部[ 1.2 性能分析的重要性 ]

1.3 性能分析可以分析什么

要想深入地理解性能分析,很重要的一点是明白性能分析方法究竟能够分析什么指标。因为测量是性能分析的核心,所以让我们仔细看看程序运行时可以测量的指标。 1.3.1 运行时间 做性能分析时,我们能够收集到的最基本的数值就是运行时间。整个进程或代码中某个片段的运行时间会暴露相应的性能。如果你对运行的程序... 查看全部[ 1.3 性能分析可以分析什么 ]

1.4 内存消耗和内存泄漏

软件开发过程中需要考虑的另一个重要资源是内存。一般的软件开发者不会意识到这一点,因为640KB RAM电脑的时代早已成为过去。但是一个内存泄漏的程序会把服务器糟蹋成640KB电脑。内存消耗不仅仅是关注程序使用了多少内存,还应该考虑控制程序使用内存的数量。 有一些开发项目,比如嵌入式系统开发,就会要... 查看全部[ 1.4 内存消耗和内存泄漏 ]

1.5 过早优化的风险

优化通常被认为是一个好习惯。但是,如果一味优化反而违背了软件的设计原则就不好了。在开始开发一个新软件时,开发者经常犯的错误就是过早优化(permature optimization)。 如果过早优化代码,结果可能会和原来的代码截然不同。它可能只是完整解决方案的一部分,还可能包含因优化驱动的设计决策... 查看全部[ 1.5 过早优化的风险 ]

1.6 运行时间复杂度

在进行性能分析和优化时,理解运行时间复杂度(Running Time Complexity,RTC)的知识,以及学习使用它们适当地优化代码十分重要。 RTC可以用来对算法的运行时间进行量化。它是对算法在一定数量输入条件下的运行时间进行数学近似的结果。因为是数学近似,所以我们可以用这些数值对算法进行... 查看全部[ 1.6 运行时间复杂度 ]

1.7 性能分析最佳实践

性能分析是重复性的工作。为了获得最佳性能,你可能需要在一个项目中做很多次性能分析,在另一个项目里还要再做一次。和软件开发中的其他重复性任务一样,有许多最佳实践可以帮助你高效地完成大多数性能分析工作。让我们来具体看看。 1.7.1 建立回归测试套件 在进行性能优化时,需要保证不管代码怎么变化,功能... 查看全部[ 1.7 性能分析最佳实践 ]

1.8 小结

在这一章,我们介绍了性能分析的基础知识,理解了性能分析方法及其重要性,并学会了如何使用它分析大多数代码的性能。 下一章我们将动手试试Python的性能分析器,看看它们是如何对应用进行性能分析的。... 查看全部[ 1.8 小结 ]