Go语言常见的点

map 引用不存在的键名不会报错

map 引用不存在的键名不会报错,返回所属类型的默认值

m := make(map[int]int)
m[10] = 14
fmt.Println("exists key value:", m[10])
fmt.Println("not exists key value:", m[1])

// result:
// exists key value: 14
// not exists key value: 0

range遍历map不会按输入顺序输出,而是随机输出

m := map[int]int{
    1: 10,
    2: 20,
    3: 30,
}

for i := 0; i < 2; i++ {
    fmt.Println("scan times :", i)
    for i, v := range m {
        fmt.Println("key:", i, "value", v)
    }
    fmt.Println("")
}
// result:
// scan times : 0
// key: 3 value 30
// key: 1 value 10
// key: 2 value 20
// 
// scan times : 1
// key: 1 value 10
// key: 2 value 20
// key: 3 value 30

压测工具wrk的安装

wrk在HTTP负载测试方面有令人吃惊的表现,负载测试时可以运行在多个CPU上,使用了很多先进的多线程设计思想和一些操作系统特定的高性能IO机制,能够用很少的线程实现非常高的并发量。GitHub代码库

安装

git clone https://github.com/wg/wrk.git
cd wrk
make

Note: 建议将编译生成的可执行文件 wrk移动到bin 目录