Подтвердить что ты не робот

Почему время запуска IronPython настолько медленное?

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

Я сделал некоторые копания, и, похоже, проблема заключается не в import ing, а до этого этапа.

Спасибо.

4b9b3361

Ответ 1

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

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

Если вы не отметили опцию ngen при установке IronPython, вы можете вернуться назад и из командной строки выполнить 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-разрядной версии.