[英]Performance implications of a Swift program calling a Rust library compiled as a dylib?
我正在用Swift编写OS X应用程序,并考虑在Rust中实现我的模型代码(MVC pov)的一部分,以便获得在Web服务器上使用的可移植性(因为Swift不会扩展到Web服务器空间中)。
如果我将Rust代码编译为动态库(.dylib)并遵循某些准则,则我知道它将生成一个外部接口,该接口看起来像Swift可以使用的典型“ C”接口。
在这种情况下,Swift与dylib通信会对性能产生什么影响? 它们与用C语言编写的内容进行通信有什么不同吗? 可以将dylib中的模型组件假定为应用程序的核心,因此可以预期通信是“聊天”的。
[如果我要用Swift编写整个代码,则模型部分将包含在单独的框架/库中,无论如何,该框架/库与dylib非常相似。]
使用外部功能接口时,我可以看到两个主要的成本中心(从性能角度来看):
后者可以用“更好”的工具链来恢复,特别是因为在这种情况下,两种语言都可以编译为LLVM IR,我知道至少一些Rust开发人员/用户要实现Rust / C交互来管理它是一个雄心壮志,我还没看过
前者需要仔细的设计,即使这样,如果您希望在任一侧使用本机复合类型( String
是主要的候选对象),那么不可避免地会发生一些转换。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.