自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(2)
  • 收藏
  • 关注

原创 golang reflect源码浅析

摘要 本文通过使用Golang的反射功能,设置结构体的成员变量值,通过阅读这个过程中的源代码,理解反射的实现原理。一、rtype结构体在golang的reflect实现中大量使用了空接口,空接口在源码实现中用emptyInterface结构体表示,代码如下所示。type emptyInterface struct { typ *rtype // 指向实际数据的类型信息 word unsafe.Pointer // 指向数据在内存中的地址}go...

2022-04-15 19:20:17 1112

原创 tcmalloc源码分析

导语目前工作中主要使用golang开发,想学习一下golang的内存分配实现原理,在阅读内存分配相关代码的时候,发现会涉及垃圾回收、协程调度、系统调用、plan6汇编代码,增加了学习的难度,因为golang的内存分配参考了tcmalloc,而tcmalloc使用c++实现,不会涉及到协程调度、垃圾回收等方面的知识,能够更加清楚地看到内存分配的实现原理,所以决定从tcmalloc入手学习。基础回顾1、内存映射tcmalloc直接使用mmap向操作系统申请内存,tcmalloc使用下面的函数完成

2022-04-15 17:56:31 1667 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除