请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

老师:关于boolmfilter的问题

boolmfilter一定要先设置占用内存大小吗?我还没爬数据就占用4个G,我调了capacity=100000000, error_rate=0.0000001这两个参数,才把占用降低了,能不能不设置内存块?

正在回答 回答被采纳积分+3

3回答

提问者 慕粉1724417796 2017-05-20 15:36:42

老师:可是降低capacity的话,url去重的数量也降低了啊

0 回复 有任何疑惑可以回复我~
  • bobby #1
    亲 capacity 数量会影响到最少hash的次数以及内存的预分配数量以及大小, 这两者之间一般都会有一个互相影响, 内存小出错率会高一些, 内存大出错率会低一些, 两者很难兼顾, 只有自己去取一个中间值, 因为一定的错误率是可以容忍的, 不同的爬虫系统容忍度是不一样的, 你可以根据自己的需求去调节大小就行了
    回复 有任何疑惑可以回复我~ 2017-05-21 10:27:11
提问者 慕粉1724417796 2017-05-19 11:09:29

老师你意思是通过降低error_rate?

0 回复 有任何疑惑可以回复我~
  • bobby #1
    不是, 你可以将capacity设置小一点, 来降低内存使用
    回复 有任何疑惑可以回复我~ 2017-05-19 20:55:37
bobby 2017-05-17 09:41:34

亲, bloomfilter的原理是通过bit为来判断的, 所以需要连续的内存块, 连续的内存块就需要预分配,所以需要指明大小, 不过一般200m左右就可以满足上亿的url爬取, 所以你可以设置小一点就行了

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信