第9章 性能优化2——NumPy和并行化

这是关于性能优化的3章系列中的最后一章。它将向你介绍两个重要的库——第三方库NumPy以及内置的multiprocessing模块。在本章中,我们将介绍以下主题:

  • 对NumPy的简要介绍。
  • 使用NumPy来加速“寻找黄金”应用程序。
  • 介绍了采用multiprocessing模块的并行处理。
  • 使用multiprocessing模块进一步提升运行时的效率。

你应该阅读前两章,第7章和第8章教你如何识别性能瓶颈,并使用内置函数提高运行时的效率。本章将应用程序到下一个层次,大幅提高其性能。

本章将是性能优化的第二部分。就像前一章一样,“寻找黄金”应用的性能将一步一步地优化。我们将从对NumPy的简要介绍开始,这对接下来的优化四和优化五来说是足够用的了。接下来会有一个对multiprocessing模块的浅显的介绍。在优化六中,我们将使用这个模块对应用程序代码的一部分进行并行化处理。让我们把前一章的同一柱形图拿过来。最后两个柱形图表示本章结束时完成的加速情况,如图9-1所示。

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

图9-1

但图表并没有说出全部的事情。优化四将会大幅度提高寻找黄金程序中generate_ random_points方法的效率。此加速不反映在图表中,因为该函数在这个场景中没有显著地反映到运行上。最后,本章将提供关于PyPy的进一步信息。PyPy是一个提供即时(JIT)编译器的Python解释器。

 

运行“寻找黄金”优化实例 ...

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.