TG Telegram Group & Channel
Python/ django | United States America (US)
Create: Update:

🖥 Ленивые импорты в Python — lazy import

🟡Все import'ы, по умолчанию, выполняются во время загрузки скриптов. Это не всегда хорошо: представим себе CLI-утилиту с 2 командами:

$ ./utility.py --help
./utility.py usage:

* --help Shows this message
* hard_work Does all the work

$ ./utility.py hard_work
Importing the universe...
Looking for stars*...
Done!

1 команда показывает документацию, 2 — делает что-то полезное. Если для одной из команды требуются некие импорты (возможно тяжёлые), они будут выполняться для всех команд, даже если они там не нужны. Это сказывается на времени запуска скрипта.

🟡Посмотреть, какие импорты выполняются при запуске скрипта можно с помощью встроенного профайлера:
$ PYTHONPROFILEIMPORTTIME=1 ./utility.py --help
import time: self [us] | cumulative | imported package
import time: 1000 | 1000 | the_universe
import time: 2000 | 2000 | stars
...

Для чтения таких файликов рекомендую использовать tuna, визуализатор профайлов:
$ PYTHONPROFILEIMPORTTIME=1 ./utility.py --help 2> import.log
$ tuna import.log


🟡Что делать с такими импортами, которые нужны не всегда? Использовать ленивые импорты!

▶️ Подробнее про ленивые импорты

@pythonl

🖥 Ленивые импорты в Python — lazy import

🟡Все import'ы, по умолчанию, выполняются во время загрузки скриптов. Это не всегда хорошо: представим себе CLI-утилиту с 2 командами:
$ ./utility.py --help
./utility.py usage:

* --help Shows this message
* hard_work Does all the work

$ ./utility.py hard_work
Importing the universe...
Looking for stars*...
Done!

1 команда показывает документацию, 2 — делает что-то полезное. Если для одной из команды требуются некие импорты (возможно тяжёлые), они будут выполняться для всех команд, даже если они там не нужны. Это сказывается на времени запуска скрипта.

🟡Посмотреть, какие импорты выполняются при запуске скрипта можно с помощью встроенного профайлера:
$ PYTHONPROFILEIMPORTTIME=1 ./utility.py --help
import time: self [us] | cumulative | imported package
import time: 1000 | 1000 | the_universe
import time: 2000 | 2000 | stars
...

Для чтения таких файликов рекомендую использовать tuna, визуализатор профайлов:
$ PYTHONPROFILEIMPORTTIME=1 ./utility.py --help 2> import.log
$ tuna import.log


🟡Что делать с такими импортами, которые нужны не всегда? Использовать ленивые импорты!

▶️ Подробнее про ленивые импорты

@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM


>>Click here to continue<<

Python/ django






Share with your best friend
VIEW MORE

United States America Popular Telegram Group (US)