gpt4 book ai didi

arrays - 存储一长串值的最佳方式

转载 作者:行者123 更新时间:2023-12-01 12:50:08 26 4
gpt4 key购买 nike

我需要在内存中存储已处理的网络文件共享列表(保留完整的 UNC 路径),这样我就不会再次处理这些文件夹。

我本来打算使用数组,但现在我认为哈希表可能是一个更快的选择。如果该文件夹路径(字符串值)已经存在,我将需要检查几个地方。

什么是最快(检查该值是否存在)且内存消耗更少的选项?

  1. 将文件夹路径存储在哈希表中,键为文件夹路径,值为空
  2. 将文件夹路径存储在一维数组中
  3. 其他

更新:我只是通过生成 50000 个字符串并进行 3 次查找来运行一些测试,就像下面指出的那个线程一样。我还查看了内存消耗,HashSet 是赢家。 HashTable 仍然是一个不错的选择,但 Array 是最糟糕的选择。

数组 - 创建 125048 毫秒,查找 37 毫秒,RAM 18Mb

哈希 - 创建 2167 毫秒,查找 0.74 毫秒,RAM 中 2.4Mb

HashSet - 创建 1966 毫秒,查找 0.02 毫秒,RAM 中 1.4Mb

最佳答案

在这种情况下,hastable 比数组更可取,因为您将在填充它之后查询键,并且项目的数量相对较大。我将从哈希表开始。如果性能不合适,请尝试其他方法,例如利用 .net 的 Dictionary(T,V)或 .net 3.5+ 的 HashSet(T)

另外,这里有一个您会感兴趣的链接:

Powershell 2 and .NET: Optimize for extremely large hash tables?

关于arrays - 存储一长串值的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13075307/

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