import name и __import__("name") идентичны
по сути.
import под капотом так или иначе вызывает __import__
Скорость импорта зависит от многих факторов. Например импорт .py
файла довольно накладное занятие и пайтон готовит .pyc
файл байткода, чтоб импортировать потом уже его. (+проверка актуальности + пересборка при обновлении пакета)
Потом зависит от того, сколько времени требуется на поиск пакета и его чтение
Полный список поиска:
__import__
sys.modules
sys.path
.pth файлы
sys.meta_path
sys.path_hooks
sys.path_import_cache
Если ничего не забыл.
Затем сам импорт под капотом весьма сложная процедура, например на время импорта берётся блокировка потока и делается ещё оч много телодвижений.
Да и там ещё есть платформозависимый код.
Потом стоит помнить, что написанное вами
import a.b.c
превращается в
import a
import a.b
import a.b.c
с блокировками потока и прочей поебистикой на каждой строке