位置: 编程技术 - 正文

Python实现以时间换空间的缓存替换算法

编辑:rootadmin

推荐整理分享Python实现以时间换空间的缓存替换算法,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

缓存是指可以进行高速数据交换的存储器,它先于内存与CPU交换数据,因此速度很快。缓存就是把一些数据暂时存放于某些地方,可能是内存,也有可能硬盘。

在使用Scrapy爬网站的时候,产生出来的附加产物,因为在Scrapy爬取的时候,CPU的运行时间紧迫度不高(访问频次太高容易被封禁),借此机会难得来上一下,让自己的内存解放一下。

算法原理:

通过将要缓存的数据用二进制展开,得到的二进制数据映射到缓存字段上,要检验是否已经缓存过,仅需要去查找对应的映射位置即可,如果全部匹配上,则已经缓存。

# 二进制就是个二叉树# 如下面可以表示出来的数据有0, 1, 2, 3四个(两个树独立)

0 1/ / 0 1 0 1

因此对缓存的操作就转化为对二叉树的操作,添加和查找只要在二叉树上找到对应路径的node即可。

算法关键代码:

实际使用效果如何呢&#;

Python实现以时间换空间的缓存替换算法

在和Python默认的 set 相比较,得出测试结果如下(存取整型,不定长字符串,定长字符串):

测试下来,内存消耗控制的比较好,一直在字节,而是用 set 的内存虽然也不是很大,当相较于 ByteCache 来说,则大上很多。

但 ByteCache 的方式来缓存,最大的问题是当碰到非常大的随机数据时,消耗时间会比较惊人。如下面这种随机长度的字符串缓存测试结果:

在个数据中,添加消耗s,查找消耗s,而 set 接近于0,单条数据也需要ms(均值)才能完成读/写操作。

不过,正如开头说的,在紧迫度不是很高的Scrapy中,这个时间并不会太过于窘迫,更何况在Scrapy中,一般是用来缓存哈希后的数据,这些数据的一个重要特性是定长,定长在本缓存算法中还是表现不错的,在位长度的时候,均值才0.5ms。而与此同时倒是能在大量缓存的时候,释放出比较客观的内存。

如果有更好的缓存算法能让速度在上新台阶,也是无比期待的。。。

总结:

1. 此方法的目标是用时间换取空间,切勿在时间紧迫度高的地方使用

2. 非常适用于大量定长,且数据本身比较小的情况下使用

3. 接2,非常不建议在大量不定长的数据,而且数据本身比较大的情况下使用

以上内容是小编给大家介绍的Python实现以时间换空间的缓存替换算法,希望对大家有所帮助!

Python中使用OpenCV库来进行简单的气象学遥感影像计算 OpenCV的全称是OpenSourceComputerVisionLibrary,是一个跨平台的计算机视觉库。OpenCV是由英特尔公司发起并参与开发,以BSD许可证授权发行,可以在商业和研究

使用C#配合ArcGIS Engine进行地理信息系统开发 简单的地图读取、展示终于到暑假了。。。开始认真整理整理相关学习的心得体会咯~先把很久之前挖的关于C#二次开发的坑给填上好了~这次先计划用一

Go语言基于Socket编写服务器端与客户端通信的实例 在golang中,网络协议已经被封装的非常完好了,想要写一个Socket的Server,我们并不用像其他语言那样需要为socket、bind、listen、receive等一系列操作头疼,

标签: Python实现以时间换空间的缓存替换算法

本文链接地址:https://www.jiuchutong.com/biancheng/382378.html 转载请保留说明!

上一篇:Python使用爬虫猜密码(pythone爬虫)

下一篇:Python中使用OpenCV库来进行简单的气象学遥感影像计算(python的opencv)

  • 累计交税如何计算?
  • 增值税附表一填错了,主表没错可以不更正不
  • 什么经营范围可以开茶叶发票
  • 未发货先开票怎么办
  • 小规模纳税人的票怎么开
  • 建筑业适用什么行业
  • 外出经营能自带食物吗
  • 营改增企业所得税
  • 建筑施工企业会计制度
  • 对公账户的理财收入计入什么科目
  • 企业收到普通发票开错税率跨月重开后咋入账
  • 管理费用中的五项费用
  • 土地转让增值税计税依据
  • 采用差额计税开什么发票
  • 借款给其他公司的会计分录怎么写
  • 当月进项已认证,发现票有问题怎么处理
  • 当月增加的投资性房地产当月提折旧吗
  • 小规模纳税人贷款利息收入增值税税率
  • 股东垫支开办费
  • 消防改造费用
  • 增值税抵扣联退税多少
  • 业务宣传费和广告费计入什么科目
  • 发票打偏了是否罚款
  • 研发费用资本化可以加计扣除吗
  • 房地产车位收入做账
  • 少数股东持股比例
  • php 数字转中文
  • 原始凭证填的基数怎么填
  • win11预览版dev改beta
  • 天窗漏进来的水去哪了
  • 投资性房地产成本法转公允价值法
  • 扩散分类
  • 发票开错需要让客户寄回来吗
  • 款付了对方没开发票咋办
  • 没进项发票怎么办
  • 开具劳务发票需要提供什么资料?
  • 董事会会费应计什么科目
  • 供货方代垫运费会计分录
  • 开具电费发票如何入账
  • 公司股东向银行货款,与私人财产有没有关系
  • 电子发票如何作废,具体怎么操作
  • MySQL ERROR 2013 (HY000)错误解决方法
  • 小规模纳税人技术维护费可以抵扣吗
  • 利润表中的所得税费用包括哪些
  • 行政事业单位非税收入管理办法
  • 存货跌价准备什么科目
  • 所得税税率变化对已确认递延所得税资产的影响
  • 个人对企事业单位的看法
  • 一般纳税人季报还是月报
  • 当月发生业务下月开票如何做账
  • 汇算清缴需要做账吗
  • 可供出售金融资产和交易性金融资产
  • 三栏明细账本怎样填写
  • 建设项目财务费用包括哪些
  • 消耗性生物资产属于非流动资产吗
  • 委托加工业务经常出现的涉税错误有哪些
  • 金税盘技术维护费可以抵扣吗
  • solaris安装教程
  • 新买的苹果电脑没有电
  • linux如何加载动态库
  • 升级win10免费吗
  • win7系统浏览器打不开网页怎么办
  • 微软开始推送win10
  • win10语音控制电脑
  • Windows命令行删除文件夹
  • bat批量命名
  • windows pytorch
  • 批处理重命名文件名
  • 优化lr
  • jquery中的事件和事件处理有哪些
  • jquery console.log
  • Android优化蓝牙
  • 深入理解新发展理念,推进供给侧结构性改革 心得体会
  • python django
  • 新中国税务历史
  • 日本的消费税是累进税吗
  • 为什么虚开增值税属于犯罪行为
  • 自然人扣缴端重置密码操作流程
  • 专利转让个人所得税率
  • 主题党日活动标题副标题格式
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设