2009-06-18 9 views
12

He estado usando IronPython desde hace un tiempo, pero algo que realmente dificulta mi desarrollo es que es insoportablemente lento para iniciar. Me encanta el lenguaje y su forma de trabajar, pero es frustrante tener que esperar más de 20 segundos antes de que empiece a ejecutar mi código.¿Por qué el tiempo de inicio de IronPython es tan lento?

He hecho algunas excavaciones y parece ser que el problema no está en el import ing, sino antes de esa etapa.

Gracias.

+3

Sí, ciertamente es lento. Será interesante ver si es más rápido cuando el DLR está completamente integrado en .NET 4.0. –

+0

Con suerte. Es una pena, ya que es una buena pieza de kit. .NET 4 se ve increíble sin embargo. Lamentablemente, mi disco duro de 20 GB está demasiado estresado para transportar el VS2010 :) –

Respuesta

17

Estamos trabajando para solucionar esto en 2.6. Puedes download Beta 1 hoy y probablemente verás un tiempo de arranque mucho mejor.

El problema es que la mayor parte del tiempo generalmente se gasta el código JITing. Es especialmente pronunciado si estás en una máquina de 64 bits porque la de 64 bits es más lenta. En 2.6 ahora demoramos la compilación de las cosas hasta que realmente se ejecuten la primera vez, las interpretamos si solo las necesitamos una o dos veces, y hemos trasladado un montón de código que generaríamos en tiempo de ejecución a IronPython.dll para que también se beneficia de ngen. Mientras más grande sea la aplicación, más grande será una mejora que probablemente veas en todos estos cambios.

Si no ha marcado la opción ngen al instalar IronPython, puede volver atrás y agregarla desde la línea de comandos haciendo "ngen install ipy.exe". ngen.exe está en C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ ngen.exe o C: \ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 \ ngen.exe si está en un 64- máquina de bit Pero tiene que ser un símbolo del sistema del administrador. Eso te dará algunos beneficios hoy en la versión estable. Si tiene 64 bits, necesitará hacer esto incluso si marcó la casilla; hay un error que impedía que ngen funcionara correctamente en 64 bits.

+0

Voy a echar un vistazo más tarde esta noche a 2.6. He tenido algunas malas experiencias con ngen en el pasado (ejem .. TOAD) así que desaté esto durante la instalación. ¡También lo ejecutaré! Gracias. –

+0

Me alegra saber que se está trabajando en esto. Uso IronPython extensamente y ese es mi problema n. ° 1. – riwalk

Cuestiones relacionadas