golang
WangDong_CNDS
知其然,知其所以然!
展开
-
Golang源码分析笔记:第一章 main 函数之前
1.go 的汇编部分:汇编引导、参数整理、核数确定、运行环境初始化(runtime.args、runtime.osinit) 2.运行环境初始化包括:环境变量设置、内存分配器初始化、调度器初始化、垃圾回收器初始化(runtime.schedinit)(最大携程数10000,执行栈64位1G,32位250M) 3.执行函数初始化:设置执行栈最大数量、启动后台并发调度、启动后台垃圾回收、执行run...原创 2019-02-17 19:31:50 · 279 阅读 · 0 评论 -
Golang源码分析:第二章 内存分配
1.内存分配的基本策略 <1>. 每次从操作系统申请⼀⼤块内存(⽐如 1MB),以减少系统调⽤。 <2>. 将申请到的⼤块内存按照特定⼤⼩预先切分成⼩块,构成链表。 <3>. 为对象分配内存时,只需从⼤⼩合适的链表提取⼀个⼩块即可。 <4>. 回收对象内存时,将该⼩块内存重新归还到原链表,以便复⽤。 <5>. 如闲置内存过多,则...原创 2019-02-17 19:34:19 · 210 阅读 · 0 评论