2009-10-21 7 views
0

J'utilise l'outil d'analyse Microsoft pour l'analyse des performances. Je trouve qu'en C# le temps pris pour charger une méthode est plus que le temps d'exécution. Le temps de chargement de la fonction dépend du nombre de lignes de code dans cette méthode Veuillez rejouer dès que possibleTemps pris pour le chargement de la fonction en C#

+1

Et la question est? –

Répondre

4

.NET utilise JIT (Just In Time) pour transformer l'IL en assemblage lors du premier accès, donc la première fois La fonction est appelée prend plus de temps que les temps suivants.

+0

Pour l'enregistrement: Le profileur ANTS affiche également cette fois-ci en tant que "surcharge JIT". – Joey

+0

Assurez-vous de profiler au niveau approprié et dans le scénario d'utilisation approprié. Ce sont les goulots d'étranglement globaux qui sont généralement importants et non les temps d'invocations de méthodes individuelles (bien sûr cela dépend aussi de la fréquence d'invocation de la méthode). Si ce n'est pas un facteur dominant, ne vous inquiétez pas. –

1

Vous pouvez précompiler le code sur la machine cible à l'aide de Ngen. La même technique est utilisée si vous placez un assembly dans le Global Assembly Cache (GAC).

Cela pourrait accélérer votre code.

+0

Promesse discutable détectée. –

+0

Ce n'est pas discutable ... J'ai travaillé sur un projet qui tourne sur un serveur terminal. Les utilisateurs se sont plaints des délais d'attente et des longs délais de chargement lors du lancement de l'application. L'exécution de Ngen sur certaines bibliothèques a accéléré le temps de chargement de quelques secondes. – Scoregraphic

+0

Cela pourrait accélérer le programme, ce qui pourrait ne pas être le cas. Dire qu'il devrait fournir une accélération est discutable. – Joren

0

Je trouve qu'en C# le temps nécessaire pour charger une méthode est plus que le temps d'exécution.

Quelle est la méthode?

temps de chargement de la fonction dépend du nombre de lignes de code dans cette méthode

semble raisonnable.

Quel est le problème? Si votre projet dépend de la performance à ce niveau, le code managé n'est pas le bon choix pour vous. Essayez C et ASM.

Questions connexes