0

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

有没有办法做到这一点?

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

4

2 回答 2

1

根据 EQATEC 用户指南,在已知限制下:

  • 当前只分析定义的方法,而不是引用的方法。因此,您的应用程序本身定义的所有方法都将被分析,但不是 System.* 等。
于 2012-07-03T19:51:43.653 回答
1

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

没关系。

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

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

您应该在代码中查找包含挂钟时间(自身加上被调用者)占总时间很大一部分的例程(甚至更好的行)。(不要寻找高呼叫数或高毫秒数。寻找高百分比。)

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

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

于 2012-07-04T02:53:47.353 回答