关于RPC的问题,在经过处理300个请求后,等候了一晚上,内存依然居高不下

cq441745656 · 2015-11-03 02:40:20 · 2055 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2015-11-03 02:40:20 的主题,其中的信息可能已经有所发展或是发生改变。


    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)
    }

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

2055 次点击  
加入收藏 微博
3 回复  |  直到 2015-11-28 03:59:35
cq441745656
cq441745656 · #1 · 9年之前

通过pprof工具查看,发现runtime.malg占用了456M内存

blov
blov · #2 · 9年之前

貌似没啥特别的啊

cq441745656
cq441745656 · #3 · 9年之前
blovblov #2 回复

貌似没啥特别的啊

问题已经解决了,原因就是go的json处理有明显的问题,会导致串行化。CPU的效率不高。

添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传