- 博客(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关注的人