【发布时间】:2010-09-13 18:43:28
【问题描述】:
最近我不得不对存储在 DataSet 中的数据进行一些非常繁重的处理。它足够重,以至于我最终使用了一个工具来帮助识别我的代码中的一些瓶颈。当我分析瓶颈时,我注意到虽然 DataSet 查找并不是很慢(它们不是瓶颈),但它比我预期的要慢。我一直认为 DataSets 使用了某种 HashTable 样式的实现,这将使查找 O(1)(或者至少我认为 HashTables 是这样)。我的查找速度似乎比这慢得多。
我想知道是否有任何了解 .NET 的 DataSet 类的实现的人愿意分享他们所知道的。
如果我这样做:
DataTable dt = new DataTable();
if(dt.Columns.Contains("SomeColumn"))
{
object o = dt.Rows[0]["SomeColumn"];
}
Contains(...) 方法和检索值以存储在Object o 中的查找时间有多快?我会认为它像 HashTable 一样快(假设我对 HashTables 的理解是正确的),但它看起来不像......
我从内存中编写了该代码,因此某些内容可能不“语法正确”。
【问题讨论】:
标签: c# .net optimization datatable