0%

非法竞态访问数据 是指无任何同步保护下并行读写同一份数据。
go命令内置了非法竞态访问数据的检测工具。可以使用go run -race或者go build -race来进行竞争检测。

Go语言的os/exec包封装了调用外部可执行程序的操作。它包装了os.StartProcess,以便更容易映射stdinstdout,使用管道连接I/O,并进行其它调整。
os/exec假定运行在Linux环境,windows某些操作可能无法执行,此包的操作也无法在Go Playground上运行。

encoding/binary包实现了数字与[]byte之前的简易转换,及其变体的编码与解码。
encoding/binary包更倾向于易用,而不是高性能,如果需要一个高性能的序列化或者需要处理大量数据,请优先考虑encoding/gob或者protocol buffers

逃逸分析是一种确定指针动态范围的方法,简单来说就是分析在程序的哪些地方可以访问到某个指针。
Go是通过在编译器里做逃逸分析(escape analysis)来决定一个对象放栈上还是放堆上。
不逃逸的对象放栈上,随着函数退出后系统直接回收,不需要gc标记后再清除。
可能逃逸的放堆上,由系统GC来进行垃圾回收。

go语言程序默认使用静态编译,生成的可执行程序不依赖任何动态链接库,可以任意部署到各种运行环境,不用担心依赖库的版本问题。

mysql开启bin-log时,创建子程序(存储过程,函数,触发器)会报错Error Code : 1418

当go语言运行过程中,出现了内存泄露,或者基准测试无法达到预期的性能时,就需要对golang进行性能分析。

go语言的提供了非常好用的性能采样与分析工具。