handler := new(BattleHandler)
rpc.Register(handler)
//rpc.HandleHTTP()
tcpAddr, err := net.ResolveTCPAddr("tcp", conf.GetRPCURL())
if err != nil {
common.CheckFatal(false, "[battleServer] Resolve TCP address for RPC fail: "+err.Error())
}
listener, err := net.ListenTCP("tcp", tcpAddr)
defer func() {
listener.Close()
}()
for {
conn, acceptErr := listener.Accept()
if acceptErr != nil {
continue
}
go rpc.ServeConn(conn)
}
有疑问加站长微信联系(非本文作者)

通过pprof工具查看,发现runtime.malg占用了456M内存
貌似没啥特别的啊
问题已经解决了,原因就是go的json处理有明显的问题,会导致串行化。CPU的效率不高。