- вступление
- Список понимания
- Понимание генератора
вступление
Python является окончательным «получением вещей» языка, где вы можете так легко писать код и не беспокоиться о производительности и памяти. Однако после того, как ваша программа станет большим, использование большого объема памяти может значительно замедлить вашу программу. Один простой способ уменьшить использование памяти и ускорить ваши программы для Переключите список списков в целесообразности генератора .
Давайте рассмотрим это простым примером программы, чтобы подвести диапазон номеров.
Список понимания
Код:
import sys my_large_list = [i for i in range(100000)] print(sum(my_large_list)) print(f"My list is {sys.getsizeof(my_large_list)} bytes")
Вывод:
4999950000 My list is 824456 bytes
Понимание генератора
Мой код часто заполняется большим количеством списков, где вместо этого мы могли вместо этого использовать генераторы. Генераторы работают как списки, за исключением того, что они оцениваются «лениво», поэтому значения схватываются при необходимости.
Все, что нам нужно сделать, это использовать фигурные брекеты на все нашему нашему списку.
Код:
import sys my_large_generator_list = (i for i in range(100000)) print(sum(my_large_list)) print(f"My generator is {sys.getsizeof(my_large_generator_list)} bytes")
Вывод:
4999950000 My list is 112 bytes
Как мы видим, оба дают один и тот же результат, однако генератор использует только фракцию памяти (112 байт вместо 824456). Когда у вас есть сотни списков, плавающих в вашем коде, переключение их к генераторам – это простой способ сохранить в памяти и увеличить скорость вашей программы:).
Оригинал: “https://dev.to/connormcshane/one-simple-way-to-reduce-your-memory-usage-in-python-cdp”