我需要将已处理的网络文件共享列表(保留完整的 UNC 路径)存储在内存中,因此我不再处理这些文件夹。
我打算使用一个数组,但现在我认为哈希表可能是一个更快的选择。如果该文件夹路径(字符串值)已经存在,我将需要检查几个地方。
什么是最快的(检查该值是否存在)和更少的内存消耗选项?
- 使用 key=folder 路径和空值将文件夹路径存储在哈希表中
- 将文件夹路径存储在一维数组中
- 别的东西
更新:我刚刚通过生成 50000 个字符串并进行 3 次查找来运行一些测试,例如在下面指出的那个线程中。我还研究了内存消耗,HashSet 是赢家。HashTable 仍然是一个不错的选择,但 Array 是最糟糕的选择。
数组 - 创建 125048 毫秒,查找 37 毫秒,RAM 中 18Mb
哈希 - 创建 2167 毫秒,查找 0.74 毫秒,RAM 中 2.4Mb
HashSet -创建1966毫秒,查找0.02毫秒,RAM中1.4Mb