两个文件各有50亿个url,每个url各64字节,内存限制是4G,找出其中共同的url

一个文件占用内存大小为5G x 64B = 320G,远大于实际内存4G,不能一次性载入内存。
把每个文件中的url进行hash(url)%1000,各得到1000个小文件,每个大约300MB
hash具有一个性质,哈希值相同的url不一定相同,但相同的url哈希之后的结果必定相同。
于是只需逐个分析两个文件的1000个小文件中对应小文件的结果,然后合并结果即可。
具体可以把一个小文件的url放进hash_set里,然后看另一个小文件的url在不在这个hahs_set里

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容