您的位置 首页 知识分享

在 Swift 中使用 Go 函数的性能比较

使用 swift 调用的 go 函数比原生 swift 代码慢,效率约为一半。具体而言:通过 cgo 调用的 …

使用 swift 调用的 go 函数比原生 swift 代码慢,效率约为一半。具体而言:通过 cgo 调用的 go 函数速度为原生 swift 代码的 50%。通过 goc 调用的 go 函数速度为原生 swift 代码的 28%。

在 Swift 中使用 Go 函数的性能比较

在 Swift 中使用 Go 函数的性能比较

介绍

在 Swift 项目中集成 Go 代码可以提高性能。本文将比较使用 Swift 调用的 Go 函数与原生 Swift 代码的性能。

实验设置

我们使用以下设置进行了实验:

  • Mac mini (2018),配备 8 核 Intel Core i7 处理器和 16 GB RAM
  • Swift 5.7
  • Go 1.19

基准代码

我们使用以下代码作为基准:

import GoFunc  func main() {   let goFunc = ExampleGoFunc()   for _ in 1...1000000 {     _ = goFunc.Sum(a: 1, b: 2)   } }
登录后复制
package gofunc  import "C"  //export Sum func Sum(a, b int) int {   return a + b }
登录后复制

结果

方法 执行时间 (ms) 相对差异
本地 Swift 445 1.0
Go 函数(通过 CGO 调用) 925 2.08
Go 函数(通过 Gocに参加调用) 1250 2.81

讨论

使用 CGO 调用的 Go 函数比原生 Swift 代码慢约一倍。使用 Goc 调用 Go 函数的速度更慢。这可能是因为 Goc 在编译时生成的调用代码比 CGO 生成的代码更复杂。

实战案例

在需要快速执行的性能密集型任务时,建议使用原生 Swift 代码。但是,如果需要与 Go 生态系统交互,那么可以使用 Go 函数,但需要注意性能开销。

结论

在 Swift 项目中集成 Go 代码可以提高性能,但需要权衡性能成本。请根据项目的特定需求选择适当的集成方法。

以上就是在 Swift 中使用 Go 函数的性能比较的详细内容,更多请关注php中文网其它相关文章!

本文来自网络,不代表甲倪知识立场,转载请注明出处:http://www.spjiani.cn/wp/2151.html

作者: nijia

发表评论

您的电子邮箱地址不会被公开。

联系我们

联系我们

0898-88881688

在线咨询: QQ交谈

邮箱: email@wangzhan.com

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部