当前位置:  开发笔记 > 人工智能 > 正文

什么在解析,DataSet.Tables或Dictionary <string,Tables>方面更快

如何解决《什么在解析,DataSet.Tables或Dictionary<string,Tables>方面更快》经验,为你挑选了1个好方法。

我正在为导入导出测试(算法读取和编写复杂数据结构到我们的数据库,而不仅仅是测试IO操作)创建一个模拟数据库,并且我正在尝试决定是否使用DataSet来存储模拟表(按表格)在faux-database或Dictionary()中的名称)

在按名称检索数据表方面,我是否期望从dataset.Tables ["TableName"]或字典<"TableName">(来自Dictionary()?获得更好的性能?



1> Marc Gravell..:

实际上,由于执行字典逻辑(haches,buckets等)固有的复杂性,Dictionary<,>通常比线性搜索.在我的测试中,截止值(Dictionary<,>开始更快)通常约为150个元素.并且由于您通常拥有的表少于150,我会对性能的线性列表感到满意.

(这根本不意味着"不使用Dictionary;它只是意味着性能可能不是这个特定用例的主要原因;唯一的密钥执行和foo ["bar"]模型可能是)

这部分是由于获得哈希的复杂性-与GetHashCode()用于string特别是相对昂贵的(虽然int.GetHashCode()是令人眼花缭乱的快速;-p).

实际上,在大多数小型数据中,您永远不会注意到两者之间的差异.如果您有大量数据,那么显然您需要相应地计划并编写代码.

a Dictionary<,>和类似a之类的其他差异List<>就是唯一性:a Dictionary<,>不会让你拥有重复的密钥(尽管Lookup<,>在.NET 3.5中会有).

推荐阅读
贾志军
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有