我正在处理需要执行网站访问检查的桌面应用程序。我在运行应用程序的PC上有一个巨大的黑名单,面对任务:
如何对这些黑名单进行最快速的检查?
我正在使用C#/。NET开发堆栈,目前我的想法是将所有这些列表加载到hashset并调用Contains
方法,但我不确定将它全部加载到内存中是个好主意,也许你可以建议另一种方法,从一方节省内存,并尽可能快地从另一方工作?
这些文件采用纯文本形式,并且在兆字节的范围内,但预计这个大小会增长。
更新: 下载后我找到了网站here的黑名单,并解压缩了大约80兆字节的数据。所以我不确定将所有数据保存在内存中是个好主意。
更新2
Contains
方法占用的最长时间:0.2
milliseconds
(这是第一次通话)