我正在使用 EQATEC,我喜欢它。但是,我似乎也无法让它分析 .NET 系统 DLL,例如System.Net.dll
或Microsoft.Xna.Framework.dll
,因为它们不在我的可执行文件目录中。
有没有办法做到这一点?
现在它告诉我一个方法本身需要很多时间,这是错误的,因为它是外部系统 DLL 调用一直需要,但它不显示此信息。
根据 EQATEC 用户指南,在已知限制下:
现在它告诉我一个方法本身需要很多时间,这是错误的,因为它是外部系统 DLL 调用一直需要,但它不显示此信息。
没关系。
如果您知道某个系统例程拥有大量程序计数器,那对您有何帮助?您仍然需要弄清楚代码中授权它的内容。
示例:内存分配是一个系统功能,通常需要很长时间。这是否意味着您需要更快的内存分配器?不,这意味着你需要做更少new
的 s。
您应该在代码中查找包含挂钟时间(自身加上被调用者)占总时间很大一部分的例程(甚至更好的行)。(不要寻找高呼叫数或高毫秒数。寻找高百分比。)
为什么?因为这是它负责的总时间的一部分。如果您能以某种方式使例行程序或线路不花费时间,那么总时间将减少该百分比。通常你这样做的方式是让它少打下属电话,或者根本不打。
例如,如果您的程序需要 10 秒,并且如果有一行代码这样做new
并且其包含百分比为 20%(即该行代码及其封闭的例程有 20% 的时间在堆栈上),那么如果您可以少执行或根本不执行该行,您将节省 2 秒。