gpt4 book ai didi

c# - 优化 Dictionary.TryGetValue()

转载 作者:行者123 更新时间:2023-11-30 13:22:56 24 4
gpt4 key购买 nike

我正在编写一个需要优化的计算量大的应用程序(NLP 机器学习任务)。

因为我的代码有很多 for 循环,所以我使用了 Parallel.For(和变体)来并行化最外层的循环。我还使用数组和 Dictionary 构建了一些索引,这大大降低了成本。

VS2010 的分析器表明应用程序大部分时间都花在 Dictionary.TryGetValue()(这是索引的副产品)中。

这引出了我是否可以做得更好的问题?以及如何?

我的第一个问题是是否普遍认为 ConcurrentDictionary.TryGetValueDictionary.TryGetValue 在我的场景中——很多读者,没有作者?

我没有动力编写自己的 HashMap ,因为它可能比 .NET 的集合更糟糕。但是是否有任何库可以保证更快地查找我的场景?

也许哈希码的实现正在减慢速度?

最佳答案

Dictionary.TryGetValue根据 MSDN 的说法,已经进行了很好的优化:

This method approaches an O(1) operation.

你没有提到你的字典的键是什么,如果你使用自定义类型,确保你已经实现了它的 GetHashCode方法正确,因为字典和哈希表依赖它并广泛使用它。

关于c# - 优化 Dictionary.TryGetValue(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16580912/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com