"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ChatGPT comparó el uso de memoria con y sin generadores PHP para grandes conjuntos de datos.

ChatGPT comparó el uso de memoria con y sin generadores PHP para grandes conjuntos de datos.

Publicado el 2024-08-05
Navegar:194

ChatGPT compared the memory usage with and without PHP generators for large datasets.

Visualizar el uso de la memoria con y sin uso de generadores puede ayudar a comprender los beneficios de eficiencia. A continuación se muestra una comparación del uso de memoria en dos escenarios:

  1. Sin usar generadores (cargando todos los datos en la memoria a la vez).
  2. Usando generadores (cargando un elemento a la vez).

Escenario 1: Sin Generadores

Digamos que tenemos una función simple que devuelve una matriz de números del 0 al 999,999. Esta función carga todos los datos en la memoria a la vez.


Uso de memoria (sin generadores)

Cuando se llama a la función getNumbersArray:

  • Memoria inicial: Baja, solo la función y la configuración del entorno están en la memoria.
  • Durante la ejecución: a medida que se ejecuta el bucle, el uso de memoria aumenta linealmente, manteniendo los 1.000.000 de números en una matriz.
  • Memoria máxima: Muy alta, manteniendo todos los datos en la memoria simultáneamente.
  • Después de la ejecución: la memoria permanece alta hasta que finaliza el script o la matriz se desactiva explícitamente.
|            Memory Usage Without Generators           |
|------------------------------------------------------|
| Start    | *                                         |
|          | **                                        |
|          | ***                                       |
|          | ****                                      |
|          | *****                                     |
|          | ******                                    |
|          | *******                                   |
| ...      | ******************************************|
| End      | ******************************************|
|------------------------------------------------------|

Escenario 2: uso de generadores

Ahora usamos una función generadora para generar números uno a la vez.


Uso de memoria (uso de generadores)

Cuando se llama a la función del generador numberGenerator:

  • Memoria inicial: Baja, solo la función y la configuración del entorno están en la memoria.
  • Durante la ejecución: el uso de la memoria sigue siendo bajo ya que solo se mantiene un número en la memoria a la vez.
  • Memoria máxima: baja, solo un elemento más gastos generales para el generador.
  • Después de la ejecución: el uso de memoria cae inmediatamente después de que finaliza la iteración.
|            Memory Usage With Generators              |
|------------------------------------------------------|
| Start    | *                                         |
|          | *                                         |
|          | *                                         |
|          | *                                         |
|          | *                                         |
|          | *                                         |
|          | *                                         |
| ...      | *                                         |
| End      | *                                         |
|------------------------------------------------------|

Resumen

  • Sin generadores: el uso de memoria aumenta con el tamaño del conjunto de datos y permanece alto durante toda la ejecución del script.
  • Con generadores: el uso de memoria permanece constante y bajo, independientemente del tamaño del conjunto de datos, porque solo se procesa un elemento a la vez.

Los generadores brindan importantes beneficios en la eficiencia de la memoria, especialmente para conjuntos de datos grandes, al generar un elemento a la vez y mantener un uso bajo de memoria durante la ejecución del script.

Declaración de liberación Este artículo se reproduce en: https://dev.to/saaberdev/chatgpt-explained-how-we-can-optimize-memory-usage-by-using-php-generators-for-large-datasets-4e5h?1Si hay Si hay alguna infracción, comuníquese con [email protected] para eliminar
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3