Импорт IronPython 2.7.1 занимает 4-5 секунд для импорта, особенно для больших модулей.Я бы улучшил его pyc.py, но я также думаю, что он не так полезен, как раньше - импорт IronPython намного быстрее, чем раньше, поэтому pyc.py менее полезен.
Дело в том, что IronPython делает гораздо больше, чем Python, когда импортирует модуль [1].Python должен проанализировать его и создать байт-код, который он затем выполняет.IronPython должен создавать деревья DLR, которые затем преобразуются в инструкции интерпретатора - и, возможно, также IL, если они превышают предел компиляции, что означает запуск .NET JIT для создания машинного кода.
Вся эта работа теряется, еслизапуск сценария занимает всего несколько секунд;IronPython лучше для длительных процессов.Тем не менее, короткий сценарий Python является чрезвычайно распространенным, а IronPython крайне плох для таких сценариев.
Есть два способа решения этой проблемы, один из которых вы упомянули.Ведется работа по поддержке стандартных файлов .pyc с интерпретатором, оптимизированным для времени запуска, но не для пропускной способности - выиграют короткие сценарии, но пострадает долго работающий код.Во-вторых, портирование IronPython на мобильные платформы требует отключения динамической генерации кода, поэтому очень важно сделать интерпретатор DLR быстрым;эта работа также ускорит запуск некомпилированного кода.
Единственное, что мы не можем преодолеть, это тот факт, что .NET-процессы обычно запускаются дольше, чем обычные Си.Эти накладные расходы могут быть уменьшены, но это требует некоторой довольно глубокой оптимизации, которая, вероятно, не будет выполняться какое-то время.
[1] Процесс импорта Python настолько быстр, что статистические вызовы для поиска файла намного большечем время, чтобы разобрать и скомпилировать его.