第8章 性能优化1

让我们回顾一下上一章中学到的内容。我们从一个简单程序开始,最初这并没有什么,直到我们对一些参数进行了调整。这种变化暴露了性能问题。因此,我们进行了搜索操作(分析),找到了关键的问题(瓶颈)。现在,让我们看看能做些什么来加速应用程序的执行速度。具体来说,我们将讨论以下主题。

  • 减少“寻找黄金”应用程序的运行时间。
  • 学习使用以下方法提高应用程序性能。
    • 对算法进行修改。
    • 避免函数的重新评估。
    • 使用推导式列表和字典。
    • 使用生成表达式。
    • 使用技巧提高涉及循环的代码的性能。
    • 选择正确的数据结构。
    • 简要讨论collections和itertools模块。

总之,本章将涵盖几个(但不是全部)加快应用程序运行的技术。其中一些可以直接应用于上一章的“寻找黄金”的场景下,以优化性能问题。剩下的内容中,我们将使用一些通用的例子来说明这些技术的效果。

你已经读过第7章了吗?它教你如何识别性能瓶颈。本章中的一部分内容仍然讨论前一章中的同一问题,并逐步改进其性能。此外,在本章,假定你已经知道如何分析代码了。

我们将从“寻找黄金”场景性能改进的第一部分开始。其目的是为你提供一个实际的例子,让你明确如何解决这个问题,并逐步减少运行时间。图8-1显示了本章结尾时所要完成任务的预览,这和上一章的图表是一样的。应用程序运行时间将被减少超过50%!

..\17-1204一校改图\p284.tif

图8-1

本章的后半部分将向你展示很多提高应用程序运行速度的方法。对于这个讨论,我们将使用一些通用的例子,因为并不是所有的技术都可以直接应用到“寻找黄金”的场景下。后半部分可以作为性能改进的一个方便的参考。 ...

Get Python应用开发指南 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.