Почему время запуска IronPython такое медленное? - PullRequest
12 голосов
/ 19 июня 2009

Я уже некоторое время использую IronPython, но что действительно мешает моему развитию, так это то, что мучительно медленно запускается. Мне нравится язык и способ его работы, но мне неприятно ждать более 20 секунд, прежде чем он начнет выполнять мой код.

Я немного покопался, и, похоже, проблема не в import, а в этом этапе.

Спасибо.

1 Ответ

17 голосов
/ 19 июня 2009

Мы работаем над исправлением этого в 2.6. Вы можете загрузить бета-версию 1 сегодня, и вы, вероятно, увидите значительно улучшенное время запуска.

Проблема в том, что большую часть времени, как правило, тратят JITing-код. Это особенно заметно, если вы работаете на 64-битной машине, потому что 64-битная медленнее. В версии 2.6 мы теперь откладываем компиляцию до тех пор, пока они фактически не будут запущены в первый раз, интерпретируем их, если они нужны только один или два раза, и мы переместили кучу кода, который мы сгенерировали во время выполнения, в IronPython.dll, чтобы тоже выигрывает от нген. Чем больше приложение, тем большее улучшение вы, вероятно, увидите во всех этих изменениях.

Если вы не установили опцию ngen при установке IronPython, вы можете вернуться и ngen из командной строки, выполнив «ngen install ipy.exe». ngen.exe находится в C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ ngen.exe или C: \ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 \ ngen.exe, если вы используете 64- бит машина. Но это должна быть командная строка администратора. Это даст вам некоторые преимущества сегодня в стабильной версии. Если вы используете 64-битную версию, вам нужно будет сделать это, даже если вы отметили флажок - есть ошибка, из-за которой ngen не может корректно работать в 64-битной среде.

...