¿Cuándo debería usarse una vista de memoria?

La descripción completa de memoryview se puede encontrar aquí :

Crear una vista de memoryview que memoryview referencia a obj . obj debe soportar el protocolo buffer. Los objetos incorporados que admiten el protocolo de búfer incluyen bytes y bytearray .

Una vista de memoryview tiene la noción de un elemento , que es la unidad de memoria atómica manejada por el objeto de origen obj . Para muchos tipos simples como bytes y bytearray , un elemento es un byte único, pero otros tipos como array.array pueden tener elementos más grandes.

Una vista de memoria es esencialmente una estructura de matriz NumPy generalizada en Python (sin la matemática). Le permite compartir memoria entre estructuras de datos (cosas como imágenes PIL, bases de datos SQLlite, matrices NumPy, etc.) sin necesidad de copiarlas primero. Esto es muy importante para grandes conjuntos de datos.

Con él, puede hacer cosas como mapear la memoria en un archivo muy grande, cortar una parte de ese archivo y hacer cálculos en esa pieza (más fácil si está usando NumPy).

A partir de la documentación, creo que se usa para “acceder a los datos internos de un objeto que admite el protocolo de búfer sin copiar”, por lo que puede hacer cosas con grandes cantidades de datos sin llenar su memoria. No sé si quieres ejemplos, pero lamentablemente no puedo pensar en ninguno.