Visual Studio EnvDTE.Expression减慢速度

时间:2015-12-08 00:01:56

标签: c# visual-studio-2010 envdte

我有一个Visual Studio 2010的Visual Studio插件,用于评估许多表达式(包括当前堆栈帧中的变量)。它反复拨打电话:

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

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

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

其中" SerializeToString"方法在正在调试的客户端应用程序中定义。

我注意到它评估的表达式越多,得到的速度就越慢。当我扩展数组的内容时,我可以坐下来观看,因为它需要花费一秒钟来评估每个数组元素表达式,并且每个数组元素的表达时间都比前一个要长。

在评估一个表达式之后,我需要进行某种清理,这样它就不会变慢,变慢和变慢吗?

1 个答案:

答案 0 :(得分:0)

我知道这不是直接回答你的问题,但看起来你正在尝试做一些与此插件非常相似的事情:

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

我使用的策略是我没有创建序列化程序的客户端代码,但它是在addin代码中完成的,运行速度相当快。它是开源的,所以请随时查看。

https://github.com/OmarElabd/ObjectExporter