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

教育类网站开发费用软件培训哪家好

教育类网站开发费用,软件培训哪家好,js模版网站,大连承接网站制作关注 go 语言内存分配策略,主要是想了解 go 的性能。申请不同大小的内存,性能开销是有差别的,申请内存越大,耗时也越久,性能也越差。 内存分配 参考 Go1.17.13 版本源码,从内存分配大小上区分了 tiny、sm…

关注 go 语言内存分配策略,主要是想了解 go 的性能。申请不同大小的内存,性能开销是有差别的,申请内存越大,耗时也越久,性能也越差。

内存分配

参考 Go1.17.13 版本源码,从内存分配大小上区分了 tiny、small、large 3种对象类型,具体实现细节在函数 mallocgc
中。代码的逻辑结构如下:

if size <= maxSmallSize {if noscan && size < maxTinySize {} else {}
} else {
}

small 和 large 的区分标准是 32kb,小于等于 32kb 都属于 small 对象,而 tiny 需要小于 16byte。tiny 内存分配还限制了对象类型, noscan 用来标识对象中不包含指针类型。

小对象的申请

小对象的申请比较简单,下面这几行源码可以清晰的描述流程:c 表示当前的 mcache,首先计算小对象对应的 spanClass,然后尝试获取对应 span 链表中第一个空内存块,如果获取失败,尝试通过 nextFree 获取。

	size = uintptr(class_to_size[sizeclass])spc := makeSpanClass(sizeclass, noscan)span = c.alloc[spc]v := nextFreeFast(span)if v == 0 {v, span, shouldhelpgc = c.nextFree(spc)}

c.alloc 是长度为 136 的数组类型,每个 sizeclass 分别对应了 noscan 和 scan 两种类型的内存分配。通过函数 makeSpanClass 可以计算出 alloc 数组的下标,同类型的 noscan、scan 交替出现。

func makeSpanClass(sizeclass uint8, noscan bool) spanClass {return spanClass(sizeclass<<1) | spanClass(bool2int(noscan))
}
  • 逃逸分析反思
  • go size class 内存分配思考
  • Go参考TcMalloc内存分配
http://www.yayakq.cn/news/883422/

相关文章:

  • 中国建设银行演示网站云南网红景点
  • 国外网站推广平台有哪些公司wordpress版本查询
  • 东城区网站建设中国十大私企
  • 阳江优化网站排名临沂网
  • 中老年适合在哪个网站做直播网站seo是什么意思
  • 上海做网站公南宁网红打卡
  • 网站制作赚钱吗教育培训网站建设方案模板
  • 英文网站首页优化北京 网站开发 排行
  • 网站备案 个人 单位服务公司税率
  • 团购商城网站建设方案安徽省城乡建设信息网
  • 制作的网站如何访问专业的模板建站企业
  • wordpress网站的搭建网站仿制公司
  • 不用js可以做网站吗郑州运营网站搭建优化
  • 送菜上门网站app如何做网络推广营销策划方案
  • 网站推广效益怎么分析炒股网站开发
  • 网站设计小图标seo搜索引擎优化兴盛优选
  • 厦门seo网站推广优化Wordpress主题上传PHP值
  • 威海网站开发公司专业官网设计
  • 青岛开发区建网站哪家好网站建设轮播大图
  • 网站编辑怎么赚钱珠海网站建设公司
  • 哪个网络公司做网站好点移动网站建设生要女
  • 一叶子电子商务网站建设策划书如何在服务器上关闭网站
  • 做网上招聘哪个网站好网站建设域名注册熊掌号
  • 沧州做网站推广公司宣传片的拍摄思路
  • 运城网站建设设计价格沈阳做网站的设计公司哪家好
  • 医疗网站制作系统开发工具有哪些
  • 番禺网站优化网络用户管理系统注册
  • php网站后台兰州市政建设集团网站
  • 网站与公众号的区别深圳网站做的好的公司名称
  • 网站建设过程论文长沙网络开发公司