GO服务端Syscall CPU开销过高

woaichimian · · 6870 次点击
对了我在看syscall 时还有个问题` nn, err := b.netconn.Read(b.buf)`我会调用这个来从网络I/O读BUFFER 我可能会收到很长的一段数据,但是发现每次都没有把BUFFER填满 就返回了,怎么设计能让它尽可能多的填满BUFFER再返回呢,我现在想的是循环读,但是有一种可能是没有数据过来会阻塞在这里么,然后用超时来跳出。
#9
更多评论
stevewang
耶和华是我的牧者,我必不至缺乏。
syscall.Write调用比较频繁,可以考虑用缓存或者批量写的方式进行优化。
#1
stevewang
耶和华是我的牧者,我必不至缺乏。
连接数目、数据量的影响很大。 有的时候负载确实就有这么多。
#2