C# EQATEC是否有办法评测系统DLL?

C# EQATEC是否有办法评测系统DLL?,c#,profiling,profiler,eqatec,C#,Profiling,Profiler,Eqatec,我使用EQATEC,我喜欢它。但是,我似乎无法让它也分析.NET系统dll,例如system.NET.dll,或Microsoft.Xna.Framework.dll,因为它们不在我的可执行文件目录中 有办法吗 现在它告诉我一个方法本身需要很多时间,这是错误的,因为它是外部系统DLL调用,需要所有的时间,但它不显示此信息。来自EQATEC用户指南,在已知的限制下: 当前只分析定义的方法,而不是引用的方法。因此,应用程序本身定义的所有方法都将被分析,而不是系统。*等等 现在它告诉我一个方法本身

我使用EQATEC,我喜欢它。但是,我似乎无法让它也分析.NET系统dll,例如
system.NET.dll
,或
Microsoft.Xna.Framework.dll
,因为它们不在我的可执行文件目录中

有办法吗


现在它告诉我一个方法本身需要很多时间,这是错误的,因为它是外部系统DLL调用,需要所有的时间,但它不显示此信息。

来自EQATEC用户指南,在已知的限制下:

  • 当前只分析定义的方法,而不是引用的方法。因此,应用程序本身定义的所有方法都将被分析,而不是系统。*等等
现在它告诉我一个方法本身需要很多时间,这是 false,因为外部系统DLL调用占用了所有 时间,但它不显示此信息

没关系

如果您知道某个系统例程拥有大量程序计数器,这对您有何帮助? 您仍然需要找出代码中授权它的内容

示例:内存分配是一项系统功能,通常占用大量时间。 这是否意味着您需要更快的内存分配器? 不,这意味着您需要做的
new
s更少

你应该在你的代码中寻找一些例程(甚至更好的代码行),它们包含的挂钟时间(self加上被调用方)占总时间的很大一部分。 (不要寻找高呼叫计数或高毫秒数。寻找高百分比。)

为什么??因为这是它负责的总时间的一部分。 如果你能以某种方式使例行程序或线路不花费时间,那么总时间将减少百分之十。 通常你这样做的方式是让它少打下级电话,或者根本不打


例如,如果您的程序需要10秒,并且如果有一行代码执行
new
,且其包含百分比为20%(即,该行代码及其封闭例程在堆栈上的时间占20%),那么如果您可以执行该行的时间少很多,或者根本不执行该行,您可以节省2秒钟。

EQATEC也不会逐行分析,除非我弄错了。另外,知道一个系统例程很长可以让我找到其他方法来解决它。@LazloBonin:“EQATEC不做逐行分析”。是 啊跟Richard Flamsholt谈谈。他是一个好人,也是《EQATEC》的作者。如果真的是这样的话,我会爱上EQATEC的。@LazloBonin:哦,是的,一行一行地写会很酷。要做到正确并且仍然快速,这是很棘手的。不过,计时系统调用可以使用一些技巧来完成,因此在某些时候更可能添加这些技巧。但不能做出任何承诺。@RichardFlamsholt太好了!外部DLL功能如何?我知道EQATEC的工作方式似乎有所不同(重新编译这些DLL),但将来可能吗?