我应该使用Dictionary而不是XmlDocument吗?

时间:2014-03-29 08:55:40

标签: c# asp.net performance dictionary xmldocument

我有一个XML文件,(asp.net)应用程序在启动时加载,每个http请求通过调用GetElementById从中请求至少50个项目。处理它的类是静态的,因此只调用一次XmlDocument.Load()。 XML文件结构非常简单,每个节点只有“ID”标签,节点之间没有层次结构(所有节点都在根节点下)。典型节点的格式为:

<txt id="OfficeEmail">bla@bla.com</txt>

我想知道将XML内容(~300个节点)加载到静态字典是否会提高请求内容时的性能。我可以猜测,一旦加载了XmlDocument,它就会将节点缓存在一些有效的数据结构中,但可能是因为用字典实现它会产生巨大的开销吗?

1 个答案:

答案 0 :(得分:2)

300个节点应该不是问题。但是如果每个请求都对xmldocument进行50次调用,那么您应该测量访问时间。如果它不符合你的标准,你可以这样做:

Dictionary<string, string> values = new Dictionary<string, string>();
// read the xml file on start up populate the dictionary.

// after that, every Dictionary access will be O(1)
string value = values["OfficeEmail"];