Python 之禅提供了很多智慧。一个特别有用的想法是“应该有一种——最好只有一种——明显的方法来做到这一点。”然而,在 Python 中完成大多数事情有多种方法,而且通常都有充分的理由。例如,Python 中有多种读取文件的方法,包括很少使用的 mmap 模块。
Python 的 mmap 提供内存映射文件输入和输出 (I/O)。它允许您利用较低级别的操作系统功能来读取文件,就像它们是一个大字符串或数组一样。这可以显着提高需要大量文件 I/O 的代码的性能。
在本教程中,您将学习:
存在哪些类型的计算机内存使用 mmap 可以解决哪些问题如何使用内存映射更快地读取大文件如何更改文件的一部分而不重写整个文件如何使用 mmap 在多个进程之间共享信息了解计算机内存内存映射是一种使用较低级别操作系统 API 将文件直接加载到计算机内存中的技术。它可以显着提高程序中的文件 I/O 性能。为了更好地了解内存映射如何提高性能,以及如何以及何时使用 mmap 模块来利用这些性能优势,首先了解一些有关计算机内存的知识很有用。
计算机内存是一个庞大而复杂的主题,但本教程仅重点介绍有效使用 mmap 模块所需了解的内容。就本教程而言,术语内存指的是随机存取内存或 RAM。
计算机内存有多种类型:
身体的虚拟的共享当您使用内存映射时,每种类型的内存都会发挥作用,因此让我们从较高的层面回顾一下每种类型。
物理内存物理内存是最容易理解的内存类型,因为它通常是与计算机相关的营销的一部分。 (您可能还记得,当您购买计算机时,广告上标明有 8 GB RAM 之类的东西。)物理内存通常位于连接到计算机主板的卡上。
物理内存是程序运行时可用的易失性内存量。物理内存不应与存储混淆,例如硬盘驱动器或固态磁盘。
虚拟内存虚拟内存是一种处理内存管理的方法。操作系统使用虚拟内存使您看起来拥有比实际