asp.net 自定义资源提供程序使用 Dictionary / SortedList / SortedDictionary?
这个问题可能以不同的格式提出,但对于我当前的要求,有人可以建议哪个是最好的。.
在 ASP.Net 中,我有自己的本地和本地实现。全局资源,我将键值对存储在静态 Dictionary 对象中,总共可能最多有 10,000 个值(所有页面)。当 ASP.NET 应用程序加载页面时,它将值存储在我的静态字典对象中。当再次访问页面时,不是从资源文件中读取值,而是从静态 Dictionary 对象提供服务。
我的问题是出于性能原因 Dictionary 是最好的还是我应该使用 SortedList/SortedDictionary
This question may have been asked in different formats, but for my current requirement can someone suggest which is the best..
In ASP.Net i have my own implementation of local & global resources, I'm storing the key value pair in static Dictionary object, Totally there may be a maximum of 10,000 values (all pages). When asp.net application loads a page it stores the value in my static dictionary object. When the page is visited again instead of reading the value from resource file it is served from static Dictionary object.
My question is for performance reason Dictionary is the best or should i go with SortedList/ SortedDictionary
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
排序会增加开销,因此如果您不需要排序,您只需根据键从字典中查找单个页面,那么我会坚持使用字典。
从您的场景来看,我认为查找速度是最重要的问题。
SortedDictionary 使用红黑树,这是一种二叉树,每当添加/删除项目时,它都会使集合保持有序。因此,如果您正在寻找值的范围,其中集合中一项相对于另一项的位置很重要,那么 SortedDictionary 就有意义。当您可能需要使用索引(如数组)而不是键来访问集合时,SortedList 很有意义。
Dictionary 使用哈希表来哈希并存储用于查找的键,因此它可以非常快速地查找随机的单个项目。这符合您的场景。
SortedDictionary 在添加/查找时按 O(log n) 的顺序进行操作,而 Dictionary 在添加/查找时按 O(1) 进行操作。
请参阅System.Collections.Generic 集合的比较。
Sorting adds overhead, so if you don't need sorting, you're just looking up a single page from the dictionary based on key, then I would stick with the Dictionary.
From you scenario, I assume lookup speed is the most important concern.
SortedDictionary uses a red-black tree, a binary tree that keeps the collection ordered whenever an item is added/deleted. So if you're looking for ranges of values, where the location of one item in the collection relative to another item is important, then SortedDictionary makes sense. Where you might need to access the collection using an index (like an array) instead of the key, SortedList makes sense.
Dictionary uses a hash table to hash and store the keys, which it uses for lookups, so it makes looking up a random, single item very fast. This matches your scenario.
SortedDictionary operates on the order of O(log n) for add/lookup, where Dictionary operates on O(1) for add/lookup.
See a comparison of the System.Collections.Generic collections.