同一个代码,测试结果:
- M1 的 Web 服务压测 QPS 大概只有 2000 左右 (M1 14 寸: 系统 Ventura ,16G 内存)
- 虚拟机里 QPS 轻松上 10000 (CentOS 7, 8G 内存,Intel(R) Xeon(R) CPU E5-2678 v3 @ 2.50GHz)
- 记得 2019 年的时候使用 2014 MacBook Pro 15 寸的压测,也是 ping-pong 这样的简单请求,SpringMVC 代码,QPS 能上 8000 (CPU 好像是 Intel 双核 2.7G ,系统好像是 macOS 9 ,8G 内存)
测试程序: 用 go gin 写了个最简单的 Web 服务
router.GET("/api/test", func(c *gin.Context) {
c.IndentedJSON(200, gin.H{
"name": "alice",
})
})
M1 Mac 本机压测过程:
- 命令行启动:
nohup ./main > /dev/null 2>&1 & - 压测命令:
ab -c 20 -n 10000 http://localhost:8080/api/tes
虚拟机 Linux 本机压测过程:
- Mac 上交叉编译为 Linux 可执行程序:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go - 命令行启动:
nohup ./main > /dev/null 2>&1 & - 压测命令:
ab -c 20 -n 10000 http://localhost:8080/api/tes
上面同样的程序,使用 SpringBoot 写了一个进行压测,在 M1 Mac 上的 QPS 和 Go 程序的结果几乎一样,CPU 使用情况也差不多。