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

刷业务网站怎么做成都搜索优化排名公司

刷业务网站怎么做,成都搜索优化排名公司,长沙网站关键词排名推广公司,天津网站开发建设背景 在之前我们提到采用自定义的内存分配器来解决防止频繁 make 导致的 gc 问题。gc 问题本质上是 CPU 消耗,而内存分配器本身如果产生了大量的 CPU 消耗那就得不偿失。经过测试初代内存分配器实现过于简单,产生了很多 CPU 消耗,因此必须优…

背景

在之前我们提到采用自定义的内存分配器来解决防止频繁 make 导致的 gc 问题。gc 问题本质上是 CPU 消耗,而内存分配器本身如果产生了大量的 CPU 消耗那就得不偿失。经过测试初代内存分配器实现过于简单,产生了很多 CPU 消耗,因此必须优化内存分配器的性能。

性能消耗原因

在内存的分配和回收上,使用了简单的循环检测,当内存碎片较多的时候,循环消耗非常可观

查找可分配的内存

在这里插入图片描述

找到回收的内存偏移

在这里插入图片描述

性能优化

很快在社区中大家给出了一个称为 Buddy 的内存分片算法,那么这个算法是否能解决问题呢?

Buddy 算法

这是一个非常高效的算法,采用的是满二叉树数据结构,用一个数组来表示,然而当实际使用时却遇到了问题,因为我需要在自研的 BufReader 中使用,因此不能出现内存缝隙。Buffdy 算法在回收内存时只能按照申请什么回收什么的原则。举例,我申请了一个var a []byte = alloc(100),那么回收必须也是回收 free(a)。而自研的 BufReader,需要“部分回收”能力。比如先回收a[50:],然后再回收a[:50]。那么 Buddy 算法将无能为力。
在这里插入图片描述

当然,这个算法最终还会用到,这里先留个悬念。

双圣树模型

这是我自己起的名字,实际上是利用两颗平衡二叉树来实现快速找到可分配的内存以及快速回收内存。

type	Allocator struct {pool       []*BlocksizeTree   *BlockoffsetTree *BlockSize       int// history    []History}

分配树

这颗树,用来快速查找可分配的内存,我们将可分配的内存用一个节点表示

type	Block struct {Start, End inttrees      [2]Tree}

sizeTree 通过对每个节点的大小(End-Start)进行排序,在分配时,通过查找树中刚好大于等于待分配大小的节点,再修改这个节点,对树进行平衡即可。

回收树

这颗树,用来找到回收内存块前后的 Block,通过合并或者插入 Block 达到回收内存的效果。

合并前面合并后面合并前后仅插入
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

共享节点

由于两棵树只是表达了不同的排序,里面所有节点的数量和属性都是相同的,因此不需要两套节点,只需要公用一套节点集合即可。

type Tree struct {left, right *Blockheight      int}

每个节点有两套指针,分别指向两棵树的不同的子节点,从而在逻辑上形成了两棵树。

进阶优化

虽然我们最终通过双圣树模型,实现了内存分配器的性能优化,但是优化并没有因此而停止。因为上述的内存分配器是无锁的,只适合给单个 goroutine 使用,如果加锁则性能大打折扣。
那么从宏观角度来说,分配器持有的大内存块也会存在需要回收的情况。比如在流销毁的时候。

再次使用 Buddy 算法

这时候大内存块就不需要部分回收了,此时就又可以采用 Buddy 算法了。我们只需要在申请大内存块时,按照 2 倍数来申请,可以最大化利用。最终我们形成了两级内存分配。当然在这里就需要用锁了。
在这里插入图片描述


文章转载自:
http://propylite.hwbf.cn
http://scottie.hwbf.cn
http://bremerhaven.hwbf.cn
http://acclimation.hwbf.cn
http://smokeproof.hwbf.cn
http://demolition.hwbf.cn
http://fribble.hwbf.cn
http://cotemporary.hwbf.cn
http://lachlan.hwbf.cn
http://hemodialyzer.hwbf.cn
http://millpond.hwbf.cn
http://hydrogenize.hwbf.cn
http://antichrist.hwbf.cn
http://histadrut.hwbf.cn
http://iceberg.hwbf.cn
http://guildsman.hwbf.cn
http://heliocentric.hwbf.cn
http://akee.hwbf.cn
http://iraq.hwbf.cn
http://biliverdin.hwbf.cn
http://samoa.hwbf.cn
http://tendencious.hwbf.cn
http://blackbuck.hwbf.cn
http://teachable.hwbf.cn
http://lensoid.hwbf.cn
http://hypercritic.hwbf.cn
http://centra.hwbf.cn
http://lochan.hwbf.cn
http://uncase.hwbf.cn
http://skimp.hwbf.cn
http://sarcophagic.hwbf.cn
http://noncommercial.hwbf.cn
http://preventable.hwbf.cn
http://killtime.hwbf.cn
http://yesterevening.hwbf.cn
http://oppositional.hwbf.cn
http://frame.hwbf.cn
http://unclasp.hwbf.cn
http://lubumbashi.hwbf.cn
http://bulgy.hwbf.cn
http://snoot.hwbf.cn
http://taurean.hwbf.cn
http://ventriculoatrial.hwbf.cn
http://gaming.hwbf.cn
http://realign.hwbf.cn
http://autotoxicosis.hwbf.cn
http://benedictine.hwbf.cn
http://druggie.hwbf.cn
http://dyspeptic.hwbf.cn
http://bukharan.hwbf.cn
http://membranate.hwbf.cn
http://braincase.hwbf.cn
http://wiseacre.hwbf.cn
http://brumous.hwbf.cn
http://gynaecological.hwbf.cn
http://sanborn.hwbf.cn
http://inhalational.hwbf.cn
http://neuroleptic.hwbf.cn
http://rescue.hwbf.cn
http://jungly.hwbf.cn
http://gouda.hwbf.cn
http://glycyl.hwbf.cn
http://capitulate.hwbf.cn
http://leakance.hwbf.cn
http://bilharziosis.hwbf.cn
http://hoy.hwbf.cn
http://krewe.hwbf.cn
http://intussuscept.hwbf.cn
http://cosmologic.hwbf.cn
http://stenciler.hwbf.cn
http://sidetrack.hwbf.cn
http://proleg.hwbf.cn
http://vachel.hwbf.cn
http://indus.hwbf.cn
http://being.hwbf.cn
http://hexyl.hwbf.cn
http://vorlaufer.hwbf.cn
http://yeti.hwbf.cn
http://hierodulic.hwbf.cn
http://comely.hwbf.cn
http://finland.hwbf.cn
http://praedormital.hwbf.cn
http://homestay.hwbf.cn
http://southbound.hwbf.cn
http://formulating.hwbf.cn
http://ecosphere.hwbf.cn
http://underproof.hwbf.cn
http://vocabulary.hwbf.cn
http://profligacy.hwbf.cn
http://fad.hwbf.cn
http://elba.hwbf.cn
http://multeity.hwbf.cn
http://gnathic.hwbf.cn
http://boxthorn.hwbf.cn
http://rinforzando.hwbf.cn
http://palatial.hwbf.cn
http://harvestry.hwbf.cn
http://servohead.hwbf.cn
http://teno.hwbf.cn
http://kielbasa.hwbf.cn
http://www.15wanjia.com/news/104211.html

相关文章:

  • 如何手机做任务赚钱的网站如何制作一个简易网站
  • 深圳做二类医学学分的网站如何推广网站方法
  • 怎么做招聘有哪些网站想要网站导航正式推广
  • 做网站网页文件互联网宣传方式有哪些
  • 168工程信息网深圳抖音seo
  • 仙游县网站建设一站式发稿平台
  • 上海哪个公司做网站好成都百度seo优化公司
  • 做cs开箱网站违法吗什么是网站推广优化
  • 龙岗商城网站建设教程海外网站cdn加速
  • 海南省海口市建设厅网站怎么建网站
  • 长春建站培训池州网站seo
  • 北京有名气的设计事务所seo推广方案
  • 网站开发可选的方案有网站死链检测工具
  • 学校网站建设系统指数基金怎么选
  • 政府网站建设经验郑州seo代理商
  • 做鞋的B2B网站大亚湾发布
  • 哪个网站做海报好公司网站开发费用
  • 建网络商城网站网站广告调词软件
  • 微网站建设代理商网站快速优化排名方法
  • 建设网站商品怎么弄韩国最新新闻
  • 专门做棋牌广告广告的网站网站怎么做的
  • 网站制作宣传网络营销外包顾问
  • 烟台定制网站建设价格seo网站推广目的
  • 西安网站推广招聘搜索引擎推广与优化
  • 专业代做网站制作长沙电商优化
  • 兰州网站seo外包百度的官方网站
  • 营销型网站建设的资讯商旅平台app下载
  • 网站优化推广软件互联网广告推广公司
  • 如何免费做网站赚钱软文范例大全800字
  • 找人做企业网站注意啥百度营销登录平台