位置: 编程技术 - 正文

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)

  • 个人接私活需要开票,可以让别的公司帮忙开票吗?
  • 发票已经报送怎么处理
  • 春节补贴是加还是减
  • 黄金销售免税
  • 报销销售部门差旅费
  • 残保金申报工资应该是实发数吗
  • 专门借款资本化时点
  • 实发工资知道如何发放吗
  • 过桥过闸通行费会计分录
  • 增值税报表填写说明
  • 物流商品采购价差如何做账
  • 客观原因导致的没见过世面
  • 实施计划成本存货发生毁损的会计处理怎么做?
  • 亏损企业股东年底借钱未还
  • 清洁费免税吗
  • 固定资产进项税额怎么抵扣
  • 房地产行业应收帐款周转率平均值
  • 小规模纳税人免征增值税怎么记账
  • 季度弥补以前年度亏损报表怎么填
  • 税控系统维护费280会计分录
  • 货物分批付款会计处理
  • 个税申报工资比实际工资高,汇算清缴时能退吗
  • 未开发土地可否转给子公司
  • 小规模企业记账软件哪个好
  • window10自带商店下载位置
  • 可以转增资本的有哪些科目
  • wordpress文章分页插件
  • 发票开具的有哪些原则
  • 季度所得税表中营业收入填万元还是总金额
  • js数组常用方法有哪几种
  • 租用办公设备
  • unplugin-auto-import/vite
  • 车险开的发票里有代收车船税吗
  • mzip命令 控制磁盘驱动器
  • python的series
  • 出租房屋收取跨年度的预收租金收入
  • 包含个人社保的保险
  • 出售无形资产净收益计入什么科目
  • 设备计提折旧从什么时候开始
  • mongodb简单使用
  • 交物业的发票有用吗
  • 城建税的减免规定有哪些
  • sqlserver如何锁表
  • 非税收入票据能报税吗
  • 车辆保险费印花税计税金额含进项税吗
  • 国债利息属于免税吗
  • 电子承兑汇票到期怎么兑现
  • 发票 认证抵扣
  • 现金盘盈盘亏账务处理分录
  • 其他业务支出的借贷方向
  • 工业企业成本核算的一般程序包括下列的
  • 偷税漏税追溯年限怎么算
  • 企业固定资产清理流程
  • 固定资产清理的借贷方向
  • 应付账款余额为0怎么写
  • 小企业成本核算方法怎么填
  • 现金投资属于什么会计科目
  • mysql与oracle的区别
  • sql有没有返回上一步
  • windows sfc命令
  • 系统恢复 win10
  • 如何给win7系统升级
  • win7自动休眠怎么取消
  • win7旗舰版系统还原无法启动
  • win8系统怎么进入控制面板
  • win10输入法设置快捷键
  • 批处理书
  • iframe语法
  • pulls toward
  • linux shell脚本实例
  • node实现文件上传
  • highcharts update
  • androidobb
  • 辽宁省农村合作医疗2024怎么缴费
  • 北京天然气收费标准2024年
  • 纽约消费税多少
  • 宁夏地税局局长
  • 个体户定额怎么查询
  • 税务申报网上申报
  • 建筑企业异地经营需要备案吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设