gpt4 book ai didi

algorithm - 使用 cgo 时;性能开销在哪里/什么时候?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:56:45 25 4
gpt4 key购买 nike

我知道在使用 cgo 时,每次调用 go -> C 函数都会影响性能。在尝试优化我的程序时,我想知道将在何处添加滞后,以便我可以减少这些情况的发生。所以假设的任意值(因为我没有实际的调用时间)...

如果(开始假设)

|通话类型 |时间(任意单位)|--- |---| 去->去 | 1
|去-> C | 10

问题,做:C->go = 10 还有吗?
怎么样:

go -> C -> C ?= 20 ~11?

go -> C -> C -> go ?=? (等于什么?)

本质上,执行 C->goC-C 调用会招致与 go->C 相同的惩罚> 如果是这样,当被链接时,这个惩罚会成倍增加吗?
go->C->C->go = ( 3 * go->C ) ?

我希望这不是一个太武断的问题,我希望其他人也有同样的需求并且已经过测试。谢谢!

最佳答案

基准测试表明 go->C 的开销非常小。每次调用只需几纳秒。因此,如果这就是您所做的全部,那么您应该能够忽略开销。

另一方面,C->go 应该有相当大的开销。在开始一个新的go程序的顺序上。因此,如果可能的话,最好直接避免这种情况。如果可能,只需重写您的应用程序,让 go->C 来检查事情或获得响应,这样您就可以跳过 C->go,而只使用 go->go。

关于algorithm - 使用 cgo 时;性能开销在哪里/什么时候?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44334174/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com