PYPROGLIB Telegram 7097
🐍 Как ускорить Python в больших проектах: lazy imports в действии

Когда весь код живёт в одном монорепозитории и модули доступны отовсюду, количество импортов быстро превращается в тысячи.

Что начинает происходить со временем:
— скрипты стартуют по 30–40 секунд
— Jupyter-ноутбуки грузятся 10–15 минут
— распределённые jobs тратят больше времени на import, чем на сами вычисления

💡 Решение → Lazy imports
Модуль не загружается при import’е, а подменяется объектом LazyImport.

Настоящий импорт происходит только тогда, когда имя реально используется в коде:
from foo import bar

# globals() now contains {"bar": LazyImport("foo", "bar")}.
# the foo module has not yet been resolved or evaluated

qux = bar()

# in the evaluation of the above statement, bar is retrieved
# from the globals() dict, causing foo to be imported and bar
# to be reassigned to foo.bar


Что это даёт:
👌 мгновенный старт CLI-утилит
👌 быстрый запуск Jupyter даже с «тяжёлыми» внутренними библиотеками
👌 распределённые задачи не тратят время на лишние зависимости

→ Это не библиотека — это патч интерпретатора (форк CPython), но эффект огромный.

🔗 Полная статья (советуем сохранить)

🐸 Библиотека питониста

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍4



tgoop.com/pyproglib/7097
Create:
Last Update:

🐍 Как ускорить Python в больших проектах: lazy imports в действии

Когда весь код живёт в одном монорепозитории и модули доступны отовсюду, количество импортов быстро превращается в тысячи.

Что начинает происходить со временем:
— скрипты стартуют по 30–40 секунд
— Jupyter-ноутбуки грузятся 10–15 минут
— распределённые jobs тратят больше времени на import, чем на сами вычисления

💡 Решение → Lazy imports
Модуль не загружается при import’е, а подменяется объектом LazyImport.

Настоящий импорт происходит только тогда, когда имя реально используется в коде:

from foo import bar

# globals() now contains {"bar": LazyImport("foo", "bar")}.
# the foo module has not yet been resolved or evaluated

qux = bar()

# in the evaluation of the above statement, bar is retrieved
# from the globals() dict, causing foo to be imported and bar
# to be reassigned to foo.bar


Что это даёт:
👌 мгновенный старт CLI-утилит
👌 быстрый запуск Jupyter даже с «тяжёлыми» внутренними библиотеками
👌 распределённые задачи не тратят время на лишние зависимости

→ Это не библиотека — это патч интерпретатора (форк CPython), но эффект огромный.

🔗 Полная статья (советуем сохранить)

🐸 Библиотека питониста

#буст

BY Библиотека питониста | Python, Django, Flask




Share with your friend now:
tgoop.com/pyproglib/7097

View MORE
Open in Telegram


Telegram News

Date: |

Among the requests, the Brazilian electoral Court wanted to know if they could obtain data on the origins of malicious content posted on the platform. According to the TSE, this would enable the authorities to track false content and identify the user responsible for publishing it in the first place. How to create a business channel on Telegram? (Tutorial) Polls You can invite up to 200 people from your contacts to join your channel as the next step. Select the users you want to add and click “Invite.” You can skip this step altogether. Matt Hussey, editorial director at NEAR Protocol also responded to this news with “#meIRL”. Just as you search “Bear Market Screaming” in Telegram, you will see a Pepe frog yelling as the group’s featured image.
from us


Telegram Библиотека питониста | Python, Django, Flask
FROM American