DotTrace没有明确的大量用户代码执行时间

时间:2018-12-17 09:54:52

标签: wpf performance dottrace

在我的工作中,我使用DotTrace分析了WPF桌面应用程序中的缓慢现象之一。 我之前曾用它来完成此操作,得出的结论是,数据库调用缓慢的地方,然后我们可以找到解决方案。

但是,这一次,我在本机代码中看到了执行时间的75%,而在用户代码中却没有明显的慢点。 我搜寻了一些人,发现其他人也有同样的问题。 答案是正常的(以前的快照在用户代码中也只占执行时间的一小部分,所以似乎还可以),或者如果在制作快照时选中“收集本机分配”框,则可以对其进行进一步分析。 (很遗憾,我没有检查)。

如果仅检查用户代码,则大部分执行时间都位于第三方UI组件DevExpress DLL中。然后您能否说这正在朝着与硬件相关的缓慢发展(请参见下面快照的“用户代码”部分)?

enter image description here

我使用“时间轴”选项来创建快照。

我的问题:

  • 由于快照在真实的用户代码(不包括DevExpress组件)中显示的时间不多,因此我可以得出结论,这种缓慢不是由代码效率低下引起的吗?
  • 我能从快照的本机代码部分得知什么吗(请参见下面的屏幕截图)?
  • 在这种情况下,时间轴是否还算方便?还是其他采样选项之一更清晰?
  • 在这种情况下,我该如何进行处理才能接近缓慢的原因?

在此先感谢您的帮助!

塞巴斯蒂安

快照的

本机代码部分: enter image description here

1 个答案:

答案 0 :(得分:0)

本机部分始终由托管代码调用。

在这种情况下,时间轴效率不高。在这里,您仅过滤了本机部分。

对于这种分析,我建议使用“采样”模式,在此可以更好地查看热点。本机部分仍然存在,但是您可以看到哪个托管代码调用了它。