Posted by
夏泽民
Apr 20, 2019
go在程序启动时会分配一块虚拟内存地址是连续的内存, 结构如下:
spans 512M bitmap 16G arena 512G
这一块内存分为了3个区域, 在X64上大小分别是512M, 16G和512G, 它们的作用如下:
Posted by
夏泽民
Apr 20, 2019
https://golang.org/ref/mem
一,初始化过程在这之前,先看下asm_arm64.s中的汇编代码关于启动这块的逻辑
CALL runtime·args(SB)
CALL runtime·osinit(SB)
CALL runtime·hashinit(SB)
CALL runtime·schedinit(SB)
Posted by
夏泽民
Apr 18, 2019
xcode里有内置的Debugger,老版使用的是GDB,xcode自4.3之后默认使用的就是LLDB了。
Posted by
夏泽民
Apr 18, 2019
G (goroutine)
G是goroutine的头文字, goroutine可以解释为受管理的轻量线程, goroutine使用go关键词创建.
Posted by
夏泽民
Apr 18, 2019
go vet是一个用于检查Go语言源码中静态错误的简单工具,消灭go vet扫描出的静态错误,有利于提高代码质量和养成良好的编码习惯,常见go vet错误总结如下: