2015-12-08 1 views
1

J'ai un addin Visual Studio pour Visual Studio 2010 qui évalue un certain nombre d'expressions (y compris les variables dans le cadre de la pile en cours). Il fait des appels répétés à:Visual Studio EnvDTE.Expression ralentissant

foreach (EnvDTE.Expression expression in dte.Debugger.CurrentStackFrame.Locals) 

et

dte.Debugger.GetExpression("CanSerializeToString(" + expression + ")", false); 

et

dte.Debugger.GetExpression("SerializeToString(" + expression + ")", false); 

où "SerializeToString" méthodes sont définies dans l'application cliente débogué.

J'ai remarqué que plus il y a d'expressions, plus il est lent. Lorsque j'ai développé le contenu d'un tableau, je peux m'asseoir et regarder car il faut plus d'une seconde pour évaluer chaque expression d'élément de tableau, et chacune prend plus de temps que la précédente.

Existe-t-il une sorte de nettoyage que je dois faire après avoir évalué une expression afin qu'elle ne soit pas de plus en plus lente et lente?

Répondre

0

Je sais que cela ne répond pas directement à votre question, mais il semble que vous essayez de faire quelque chose de très similaire à ce Addin:

https://visualstudiogallery.msdn.microsoft.com/c6a21c68-f815-4895-999f-cd0885d8774f

La stratégie que je l'utilise est que je n'ai pas le code client créant le sérialiseur mais c'est fait dans le code addin et ça tourne assez vite. C'est open source alors n'hésitez pas à jeter un oeil.

https://github.com/OmarElabd/ObjectExporter