您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

为什么cgo的性能这么慢?我的测试代码有问题吗?

为什么cgo的性能这么慢?我的测试代码有问题吗?

正如您所发现的那样,通过CGo调用C / C ++代码的开销相当大。因此,一般而言,最好是尽量减少拨打CGo的次数。对于上面的示例,与其在循环中重复调用CGo函数,不如将循环向下移动到C。

Go运行时如何设置其线程可能会破坏许多C代码的期望,有很多方面:

由于这些原因,CGo选择了在传统堆栈中设置的单独线程中运行C代码的安全方法

如果您来自Python之类的语言,那么用C重写代码热点作为加速程序的一种方法并不少见,您会失望的。但是,与此同时,等效的C和Go代码间的性能差距要小得多。

通常,我保留使用CGo与现有库进行接口,可能还使用小型C包装函数,这些函数可以减少我需要从Go进行的调用次数

Go 2022/1/1 18:14:46 有611人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶