最近,我不得不对存储在DataSet中的数据做一些非常重要的处理.它足够重,我最终使用工具来帮助识别代码中的一些瓶颈.当我分析瓶颈时,我注意到尽管DataSet查找速度并不是非常慢(它们不是瓶颈),但它比我预期的要慢.我总是假设DataSet使用某种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的理解是正确的)但它似乎不是......
我从内存中编写了这段代码,所以有些东西可能不是"语法正确".