Open johncming opened 5 years ago
我们通过time.Sleep让goroutine休眠来模拟I/O密集型的服务,实际goroutine休眠和真正的I/O密集型的服务还是有区别的,虽然它们都有一定的耗时,goroutine在等待的过程中会休眠,但是I/O密集型还有大量的I/O访问,比如磁盘、网络等等。出于方便测试的目的,我们还是使用time.Sleep来模拟,主要测试goroutine在休眠一段时间后对性能的影响。
计算密集型的访问我们采用挖矿算法,通过计算hash值,满足一定的挖矿难度让CPU进行大量的计算动作。
连接数分别是5000、2000、1000、500、200和100
多epoller服务器
goroutine-per-connection服务
goroutine的方式更好
百万 Go TCP 连接的思考3: 正常连接下的吞吐率和延迟 | 鸟窝