CGo 调用的性能缺点
您观察到的 Cgo 函数与纯 Go 函数相比性能较慢,这与固有的开销是一致的通过CGo调用C/C代码。为了缩小这种性能差距,最大限度地减少 CGo 调用的频率至关重要。考虑将循环重新定位到 C 以避免重复的 CGo 调用。
C 代码的 Go 运行时线程化的后果
此外,Go 运行时的线程设置可能会影响C代码。以下是一些值得注意的方面:
CGo 的安全导向方法
由于这些因素,CGo 选择了保守的方法,在具有传统堆栈的专用线程。
Go 中的性能预期
与 Python 等语言相反,在 Python 中,用 C 重写性能关键部分是一种常见做法,等效的 C 和 Go 代码之间的性能差距明显缩小。因此,CGo 通常保留用于与现有库的接口,可能受到小型 C 包装函数的支持,以减少 CGo 调用频率。
以上是为什么 CGo 比 Pure Go 慢,如何提高性能?的详细内容。更多信息请关注PHP中文网其他相关文章!