2009-06-18 5 views
12

J'utilise IronPython depuis un certain temps maintenant, mais quelque chose qui gêne vraiment mon développement, c'est qu'il est incroyablement lent pour démarrer. J'adore la langue et sa façon de travailler, mais il est frustrant de devoir attendre plus de 20 secondes avant de commencer à exécuter mon code.Pourquoi le démarrage d'IronPython est-il si lent?

J'ai fait quelques recherches et il semble que le problème ne soit pas avec le import mais avant cette étape.

Merci.

+3

Oui, c'est certainement lent. Il sera intéressant de voir si c'est plus rapide lorsque le DLR est entièrement intégré dans .NET 4.0. –

+0

Espérons. C'est dommage, car c'est un très beau kit. .NET 4 a l'air incroyable. Malheureusement, mon disque dur de 20 Go est trop stressé pour porter VS2010 :) –

Répondre

17

Nous travaillons à corriger ce problème dans 2.6. Vous pouvez aujourd'hui download Beta 1 et vous verrez probablement un temps de démarrage beaucoup amélioré.

Le problème est que la plupart du temps est généralement passé le code JIT. C'est particulièrement prononcé si vous utilisez une machine 64 bits car le 64 bits est plus lent. Dans 2.6 nous retardons maintenant la compilation des choses jusqu'à ce qu'elles soient réellement exécutées la première fois, les interprétons si elles sont seulement nécessaires une ou deux fois, et nous avons déplacé un tas de code que nous avions généré à l'exécution dans IronPython.dll profite aussi de ngen. Plus l'application est grande, plus grande est l'amélioration que vous verrez probablement de tous ces changements. Si vous n'avez pas coché l'option ngen lors de l'installation d'IronPython, vous pouvez revenir en arrière et l'annuler depuis la ligne de commande en faisant "ngen install ipy.exe". ngen.exe est dans C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ ngen.exe ou C: \ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 \ ngen.exe si vous êtes sur un 64- machine à bits. Mais il doit être une invite de commande d'administrateur. Cela vous donnera quelques avantages aujourd'hui sur la version stable. Si vous êtes en 64 bits, vous devrez le faire même si vous avez coché la case - il y a un bug qui empêche ngen de fonctionner correctement sur 64 bits.

+0

Je vais jeter un coup d'oeil plus tard ce soir à 2.6. J'ai eu de mauvaises expériences avec ngen dans le passé (ahem .. TOAD) donc je l'ai décoché pendant l'installation - je vais le faire aussi! Merci. –

+0

Je suis heureux d'entendre que cela est en cours. J'utilise beaucoup IronPython et c'est mon problème # 1 avec elle. – riwalk

Questions connexes