当前位置: 首页 > news >正文

专业做网站 优帮云什么是seo网站优化

专业做网站 优帮云,什么是seo网站优化,国外那些视频网站做的不错,wordpress 分类下怎么调用带有缩略图的文章?文章目录 Page Cache层释放内存的流程Page Cache层释放内存的实现 Page Cache层释放内存的流程 如果central cache释放回一个span,则依次寻找span的前后page id的没有在使用的空闲span,看是否可以合并,如果合并继续向前寻找。这样就可以将切…

文章目录

  • Page Cache层释放内存的流程
  • Page Cache层释放内存的实现

Page Cache层释放内存的流程

如果central cache释放回一个span,则依次寻找span的前后page id的没有在使用的空闲span,看是否可以合并,如果合并继续向前寻找。这样就可以将切小的内存合并收缩成大的span,减少内存碎片。

Page Cache层释放内存的实现

void PageCache::ReleaseSpanToPageCache(Span* span)
{// 对span前后的页,尝试进行合并,缓解内存碎片问题//补充点1:向前合并的逻辑介绍while (1){PAGE_ID prevId = span->_pageId - 1;auto ret = _idSpanMap.find(prevId);// 前面的页号没有,不合并了if (ret == _idSpanMap.end()){break;}// 前面相邻页的span在使用,不合并了Span* prevSpan = ret->second;if (prevSpan->_isUse == true){break;}// 合并出超过128页的span没办法管理,不合并了if (prevSpan->_n + span->_n > NPAGES-1){break;}span->_pageId = prevSpan->_pageId;span->_n += prevSpan->_n;_spanLists[prevSpan->_n].Erase(prevSpan);delete prevSpan;}// 向后合并//补充点2:向后合并的逻辑介绍while (1){PAGE_ID nextId = span->_pageId + span->_n;auto ret = _idSpanMap.find(nextId);if (ret == _idSpanMap.end()){break;}Span* nextSpan = ret->second;if (nextSpan->_isUse == true){break;}if (nextSpan->_n + span->_n > NPAGES-1){break;}span->_n += nextSpan->_n;_spanLists[nextSpan->_n].Erase(nextSpan);delete nextSpan;}_spanLists[span->_n].PushFront(span);span->_isUse = false;_idSpanMap[span->_pageId] = span;_idSpanMap[span->_pageId+span->_n-1] = span;
}

补充点1:向前合并的逻辑介绍
向前合并代码

while (1){PAGE_ID prevId = span->_pageId - 1;auto ret = _idSpanMap.find(prevId);// 前面的页号没有,不合并了if (ret == _idSpanMap.end()){break;}// 前面相邻页的span在使用,不合并了Span* prevSpan = ret->second;if (prevSpan->_isUse == true){break;}// 合并出超过128页的span没办法管理,不合并了if (prevSpan->_n + span->_n > NPAGES-1){break;}span->_pageId = prevSpan->_pageId;span->_n += prevSpan->_n;_spanLists[prevSpan->_n].Erase(prevSpan);delete prevSpan;}

我们假设Central Cache还回来了一个3页的span
_pageid = 2000
在这里插入图片描述

而我们向前合并就是要找前面_pageid为1999的span
假设1999有且没被使用
在这里插入图片描述

合并两个span
在这里插入图片描述
然后继续往前合,直到不能合了为止
不能合情况:
1.前面对应的页号不存在
2.前面的页号正在使用
3.和前面的span加起来页数超过128

补充点2:向后合并的逻辑介绍
向后合并代码:

while (1){PAGE_ID nextId = span->_pageId + span->_n;auto ret = _idSpanMap.find(nextId);if (ret == _idSpanMap.end()){break;}Span* nextSpan = ret->second;if (nextSpan->_isUse == true){break;}if (nextSpan->_n + span->_n > NPAGES-1){break;}span->_n += nextSpan->_n;_spanLists[nextSpan->_n].Erase(nextSpan);delete nextSpan;}

前面已经向前合并了,那么之后,我们就要看看向后还能不能合并
在这里插入图片描述
我们向后合并也是
现在的span的_pageid + 页数,在该场景中也就是1992+11 = 2003,所以我们应该向后找2003页的span看有没有。
假设有
在这里插入图片描述
合并两span
在这里插入图片描述
然后也继续往后合,直到不能合了为止
不能合情况:
1.后面对应的页号不存在
2.后面的页号正在使用
3.和后面的span加起来页数超过128

http://www.wangmingla.cn/news/82750.html

相关文章:

  • 客户网站加一个功能 应该怎么做建一个网站大概需要多少钱
  • 制作电商网站想做seo哪里有培训的
  • wordpress 验证码访问seo是什么意思呢
  • 成都有没有做网站建设的微信群二维码推广平台
  • intellij 网站开发cps推广平台有哪些
  • 广州做网站信科分公司全网关键词搜索排行
  • 怎么做有声小说网站播音员长春网站建设方案报价
  • 山西专业制作网站推广公司好做吗
  • 网站排名提升软件seo入门基础知识
  • 网站建设全程揭秘seo千享科技
  • 香飘飘网站平台建设中国seo公司
  • 良品铺子的网站建设目标my63777免费域名查询2023年
  • 专业做企业网站竞价广告
  • 成都定制app开发seo公司北京
  • 做网站写代码流程it行业培训机构哪个好
  • 柳州高端网站建设实时疫情最新消息数据
  • 现在做什么个人网站好关键词排名提升工具
  • 北京网页设计公司有哪些前端优化
  • 广州环保网站建设个人如何推广app
  • 湘潭网站建设搭建南昌seo排名
  • 网站广告条幅怎么做动态的惠州网站排名提升
  • 谷歌网站建设代理原版百度
  • 北京个人网站建设多少钱什么是seo搜索优化
  • 北京建站模板企业dw软件怎么制作网页
  • 中企动力官网 网站北京seo公司网站
  • 网站中英文转换js什么推广平台好
  • 昆山网站建设网站百度帐号个人中心
  • 公司网站优化要怎么做百度指数手机版
  • 英文网站建设比较好百度指数数据分析报告
  • 蓬莱做网站那家好2022年seo还值得做吗