zinx icon indicating copy to clipboard operation
zinx copied to clipboard

是否考虑过将 go StartWriter()去掉呢

Open Owen-Zhang opened this issue 3 years ago • 1 comments

你好,最近看过你的视频,也将源码对照着学习了一下,有一个地方我有点迷惑: 读和写都是一个单独的goroutine去处理, 其中写会依赖 msgBuffChan或者msgChan通道, 现在是一个链接一个写gorutine(也相当于多少个msgBuffChan实例), 链接初始化时:msgBuffChan: make(chan []byte, utils.GlobalObject.MaxMsgChanLen), 如果MaxMsgChanLen设置很大,会占用大量的内存,就相当于一个链接占用一个空屋子(特别是数据交互特别少的时候) 你们是否考虑过使用worker的方式(使用几个goroutine和几个channel将数据write给客户端呢) 个人想法,望指点

Owen-Zhang avatar Nov 25 '20 11:11 Owen-Zhang

感谢你提供的建议,您这种想法是可以的,通过限定go的数量,来降低write 所占用的内存成本。这也是优化的方式之一,只不过目前发布的版本没有做此优化。

aceld avatar Dec 01 '20 06:12 aceld