«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > ChatGPT сравнил использование памяти с генераторами PHP и без них для больших наборов данных.

ChatGPT сравнил использование памяти с генераторами PHP и без них для больших наборов данных.

Опубликовано 5 августа 2024 г.
Просматривать:654

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

Визуализация использования памяти с использованием генераторов и без них может помочь понять преимущества эффективности. Ниже приведено сравнение использования памяти в двух сценариях:

  1. Без использования генераторов (загрузка всех данных в память сразу).
  2. Использование генераторов (загрузка по одному элементу за раз).

Сценарий 1: Без генераторов

Предположим, у нас есть простая функция, которая возвращает массив чисел от 0 до 999 999. Эта функция загружает все данные в память одновременно.


Использование памяти (без генераторов)

При вызове функции getNumbersArray:

  • Начальная память: низкая, в памяти находятся только настройки функции и среды.
  • Во время выполнения: по мере выполнения цикла использование памяти увеличивается линейно, сохраняя все 1 000 000 чисел в массиве.
  • Пиковая память: очень высокая, одновременно удерживается все данные в памяти.
  • После выполнения: память остается высокой до тех пор, пока сценарий не завершится или массив не будет явно не установлен.
|            Memory Usage Without Generators           |
|------------------------------------------------------|
| Start    | *                                         |
|          | **                                        |
|          | ***                                       |
|          | ****                                      |
|          | *****                                     |
|          | ******                                    |
|          | *******                                   |
| ...      | ******************************************|
| End      | ******************************************|
|------------------------------------------------------|

Сценарий 2: Использование генераторов

Теперь мы используем функцию-генератор для получения чисел по одному.


Использование памяти (с использованием генераторов)

При вызове функции-генератора NumberGenerator:

  • Начальная память: низкая, в памяти находятся только настройки функции и среды.
  • Во время выполнения: использование памяти остается низким, поскольку в памяти одновременно хранится только одно число.
  • Пиковая память: низкая, только один элемент плюс накладные расходы на генератор.
  • После выполнения: использование памяти снижается сразу после завершения итерации.
|            Memory Usage With Generators              |
|------------------------------------------------------|
| Start    | *                                         |
|          | *                                         |
|          | *                                         |
|          | *                                         |
|          | *                                         |
|          | *                                         |
|          | *                                         |
| ...      | *                                         |
| End      | *                                         |
|------------------------------------------------------|

Краткое содержание

  • Без генераторов: использование памяти увеличивается с увеличением размера набора данных и остается высоким на протяжении всего выполнения скрипта.
  • С генераторами: использование памяти остается постоянным и низким, независимо от размера набора данных, поскольку одновременно обрабатывается только один элемент.

Генераторы обеспечивают значительные преимущества в эффективности использования памяти, особенно для больших наборов данных, создавая по одному элементу за раз и поддерживая низкий уровень использования памяти на протяжении всего выполнения скрипта.

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/saaberdev/chatgpt-explained-how-we-can-optimize-memory-usage-by-using-php-generators-for-large-datasets-4e5h?1Если есть есть какие-либо нарушения, пожалуйста, свяжитесь с [email protected], чтобы удалить
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3