摘要:
"原文链接" 什么是逃逸分析 逃逸分析(Escape Analysis)是Go在编译程序时执行的过程, 由编译器通过分析, 决定变量应当分配在栈上还是堆上. 在编译中进行逃逸分析 目前有代码如下: 通过在编译时增加gcflags参数, 使用类似如下命令编译: 然后获得输出如下: 这些信息,表明 Ge 阅读全文
摘要:
"原文链接" map 的基本构成 map的实现文件为 . 它的基本结构是一个HashMap,实现方式为哈希桶, 根据key将数据散列到不同的桶中,每个桶中有固定的8个键值对. 桶尾部可以挂载额外的桶(overflow buckets). 由结构可知, Go map的访问复杂度为O(1), 假设哈希函 阅读全文
摘要:
我的 "原文链接" 源文件: runtime/slice.go slice 是一个连续的内存结构, 由3部分组成: 内存区域, 长度 和 可用长度(cap): make 创建一个slice, 实际上有3个参数: 当省略参数cap时,默认cap=len cap决定了实际分配内存区域的大小, 在进行 a 阅读全文