我正在研究的项目是关于从网络集请求xml。服务器端构造xml。 xml可能有很多节点,因此性能不是那么好。
我使用virtual studio 2010探查器来分析性能问题。 发现最耗时的函数是 System.Collections.Generic.ICollection`1.get_Count(),它实际上是Generic List的Count属性。这个函数被称为 9000次< /强>
表现数据如下:
经过的独占时间为 4154.14(ms),而应用独占时间仅为 0.52(ms)。
我知道Elapsed独家时间和应用专属时间之间的差异。 应用程序独占时间不包括上下文切换内容的时间花费。 当代码只获取通用列表的Count属性时,上下文如何切换到快乐。
我对性能分析器数据非常困惑。有人可以提供一些信息吗?非常感谢!
答案 0 :(得分:3)
实际上反编译的来源显示List<T>
的以下内容:
[__DynamicallyInvokable]
public int Count
{
[__DynamicallyInvokable, TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")] get
{
return this._size;
}
}
它实际上返回了一个字段的值而没有做任何其他事情。我建议你的表现在其他地方,或者你误解了你的探查者的输出。