2009-08-12 3 views
3

Nous avons un projet pour un client écrit en VB.NET. Dans l'un des projets, nous avons environ 100 modules, qui sont tous très simples. Ce sont des méthodes d'extension qui convertissent entre les types d'objets. Voici un petit extrait:Temps de compilation VB.NET SLOW - Aucune activité de disque ou de processeur

Public Module ScheduleExtensions 

<System.Runtime.CompilerServices.Extension()> _ 
Public Function ToServicesData(ByVal source As Schedule) As ScheduleServicesData 
    If (source IsNot Nothing) Then 
     Dim target As New ScheduleServicesData 
     With target 
      .CenterId = source.CenterId 
      .EmployeeGuid = source.EmployeeGuid 
      .EndDateTime = source.EndDateTime 

Le problème est que ce projet prend à lui seul 2 minutes et plus. J'ai couru diskmon et filemon, et il n'accède pas au système de fichiers pendant que la construction semble se bloquer. L'utilisation du processeur est également faible pendant la majeure partie de l'exécution. Après environ 2 minutes, la construction se termine et il y a une activité disque et processeur. Le problème peut être reproduit sur n'importe quelle machine (4 essayé jusqu'ici). Je suis allé jusqu'à compiler le projet en utilisant la ligne de commande vbc, et le problème est là aussi.

Y a-t-il quelque chose à propos des méthodes d'extension VB.NET qui conduisent à une mauvaise compilation? C'est la seule fonctionnalité que nous utilisons qui est plus complexe que la boucle/obtention/réglage, etc

Répondre

0

Il est difficile de savoir quel serait le problème sur un petit échantillon comme celui-ci. Il n'y a rien de intrinsèquement lent au support de la méthode d'extension dans le compilateur et nous avons de nombreux tests de régression dans ce domaine. S'il y a un bug, c'est probablement une combinaison de plusieurs facteurs qui causent le problème.

Si vous avez le temps fichier s'il vous plaît un bug sur cette question à

Il rend beaucoup le bug plus facile à vérifier si vous pouvez fournir un petit échantillon qui reproduit le problème.

1

Les problèmes de performance qui n'indiquent aucune activité CPU ou DISK significative sont invariablement liés aux attentes du réseau, soit aux performances du réseau lui-même, soit, plus probablement, en attente des réponses des Services sur d'autres systèmes. Maintenant, je ne vois rien dans l'échantillon qui devrait avoir ce problème, donc je dois supposer que le problème vient d'autre chose dans votre projet, ou de vos paramètres de projet ou votre environnement VS, ou l'environnement de votre système.

Vous pouvez essayer d'obtenir un outil capable de surveiller tous les appels réseau de votre système et de voir ce qui se passe.

Questions connexes