"广发证券 IT 中后台系统架构师罗意通过直接的内存通讯来规避来昂贵的 CGO 调用。 [图片] [链接]"

怎么解决 CGO 效率过低的问题?

本贴最后更新于 263 天前,其中的信息可能已经时过境迁

广发证券 IT 中后台系统架构师罗意通过直接的内存通讯来规避来昂贵的 CGO 调用。

640webp

原文

  • B3log

    B3log 是一个开源组织,名字来源于“Bulletin Board Blog”缩写,目标是将独立博客与论坛结合,形成一种新的网络社区体验,详细请看 B3log 构思。目前 B3log 已经开源了多款产品:PipeSoloSymWide 等,欢迎大家加入,贡献开源。

    2594 引用 • 4225 回帖 • 632 关注
  • golang

    Go 语言是 Google 推出的一种全新的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌首席软件工程师罗布派克(Rob Pike)说:我们之所以开发 Go,是因为过去 10 多年间软件开发的难度令人沮丧。Go 是谷歌 2009 发布的第二款编程语言。

    243 引用 • 1005 回帖 • 784 关注
  • OSX
    6 引用 • 66 回帖
感谢    关注    收藏    赞同    反对    举报    分享
优质回帖
  • hulu  

    个人觉得 cgo 挺坑的,能不用尽量不用,我们项目不得已用了 cgo,然后每次调用 c 代码都 go 出来,cpu 占用爆表,个人觉得如果一门语言能解决,那就尽量用一门语言,如果不能解决,那就考虑进程间通信的方式解决。

5 回帖    
请输入回帖内容...
  • hulu      

    个人觉得 cgo 挺坑的,能不用尽量不用,我们项目不得已用了 cgo,然后每次调用 c 代码都 go 出来,cpu 占用爆表,个人觉得如果一门语言能解决,那就尽量用一门语言,如果不能解决,那就考虑进程间通信的方式解决。

    1 回复 
    感谢    赞同 1    反对    举报    分享       回复
  • linker            

    是的,通过进程间通讯的方式蛮好的。 简单就是通过 TCP 好了,其实开销很小的。

    感谢    赞同    反对    举报    分享       回复
  • dexter      

    为啥 调用 C 代码 go 出来 cpu 占用爆表,是 c 的设计成这样么

    一些项目用 cgo 没有发现 cpu 占用爆表呀 😂

    1 回复 
    感谢    赞同    反对    举报    分享       回复
  • hulu            

    跟 cgo 倒没太大关系,但是调用 c 的时候 c 代码具体执行拿捏不来,我们用 cgo 也不是为了利用 c 的效率,只是如果用 go 的话需要将 c 库重新写一遍,我们场景也挺恶心的,针对每个连接,都需要调用一次 c,c 代码内部调用 netlink 与内核通信,netlink 获取结果之后还需要在 c 代码里面调用 go 函数。

    1 回复 
    感谢    赞同    反对    举报    分享       回复
  • linker            

    那确实是够麻烦的

    感谢    赞同    反对    举报    分享       回复