【发布时间】:2011-09-27 20:25:39
【问题描述】:
我正在设计一个包含字符串层次结构的 C# 类,其中每个字符串都有 0 或 1 个父级。
我倾向于使用Dictionary<string,string> 来实现这一点,其中键是子项,值是父项。字典可能有大量的值,但我不能说确切的大小。这似乎应该比使用对父级的引用创建复合包装器执行得更快,但我可能是错的。
我可以采取其他方法来确保更好的性能速度吗?
【问题讨论】:
-
“更好的性能”在哪方面?时间、空间?你有什么要求?这将如何使用?你最坏的情况是什么?您需要先回答这些问题,然后才能有人帮助您。
-
如果你以这种方式实现它,你如何为给定的父母获得孩子?
-
@eds,关于时间的表现。我更新了问题。
-
这是一个很好的问题 =)。首先(IMO),您需要对硬件的工作原理有基本的了解。接下来,您需要能够确定瓶颈在哪里。那就是你优化的地方。花时间优化不是瓶颈的部分代码是没有意义的,它将在 5 年的执行时间中为您节省 1 秒的执行时间。像许多事情一样,这个问题没有简单、简短的答案。这需要时间和经验,以及了解幕后工作的方式(尤其是数据结构)。
-
所以,简而言之;继续学习!随着时间的推移,只需继续学习基本概念,因为它们非常重要。在遇到性能问题之前,高层次的、抽象的东西都很好而且很花哨。那么您需要知识和经验来了解抽象层以及代码性能不佳的原因。还要记住,一个好的分析器是你最好的朋友。
标签: c# performance dictionary hashtable idictionary