算法

There are 1 entries for the tag 算法

用时间换空间的缓存算法

MitchellChu 2016-02-18 其他技术 编程语言

在使用Scrapy爬网站的时候,产生出来的附加产物,因为在Scrapy爬取的时候,CPU的运行时间紧迫度不高(访问频次太高容易被封禁),借此机会难得来上一下,让自己的内存解放一下。 算法原理: 通过将要缓存的数据用二进制展开,得到的二进制数据映射到缓存字段上,要检验是否已经缓存过,仅需要去查找对应的映射位置即可,如果全部匹配上,则已经缓存。 # 二进制就是个二叉树 # 如下面可以表示出来的数据有0, 1, 2, 3四个(两个树独立) 0 1 / \ / \ 0 1 0 1 因此对缓存的操作就转化为对二叉树的操作,添加和查找只要在二叉树上找到对应路径的node即可。   算法关键代码: def _read_bit(self, data, position): return (data >> position) & 0x1 def _write_bit(self, data, position, value): return data | value << position   实际使用效果如何呢? 在和Python默认的set相比较,得出测试结果如下(存取整型,不定长字符串,定长字符串): Please select test mode:4 Please enter test times:1000 ==================================================================================================== TEST RESULT:: ==================================================================================================== set() ...

关于博主

  一枚成分复杂的网络IT分子,属于互联网行业分类中的杂牌军。