gpt4 book ai didi

c++ - 写 MethodChannel 桥和 Dart :ffi bridge to run c/c++ code to get the response? 有什么区别

转载 作者:行者123 更新时间:2023-12-05 02:07:03 24 4
gpt4 key购买 nike

在开始我的问题之前,我想指出这个问题并不相似。 Difference between writing platform specific code vs dart:ffi code .在这里,发问者问的是实际差异,而我试图了解使用这两种方法可以实现的同一任务的差异。

在平台上运行 native c/c++ 代码、在平台端(例如 Kotlin)获取结果并通过方法 channel 将其发送到 dart 与编写 dart:ffi 有什么区别> 接口(interface)并直接调用 native c++ 代码。他们基本上会提供相同的代码执行。我看到的唯一区别是 MethodChannel 调用将是一个异步任务,而 dart:ffi 将是同步的。除了异步行为之外,从这两种技术中获取响应是否会有任何差异(主要是性能)。

最佳答案

这是 dart:ffi 的旅游 repo :https://github.com/Sunbreak/native_interop.tour

  1. 异步/同步
  • 对于MethodChannel,Dart -> NativeNative -> Dart 都是异步的
  • 对于 dart:ffi,Dart -> NativeNative -> Dart 可以是同步的(除了来自 Isolate 的非 mutator 线程的本地调用)
  1. 内存
  • 对于 MethodChannel,每个互操作都需要序列化/反序列化
  • 对于 dart:ffi,您可以轻松编写类似 C 的内存高效操作
  1. 表现

dart:ffi同步互操作在不频繁的小数据上有很好的优势

https://www.xdea.xyz/2020/11/flutter-platform-channel-%e6%80%a7%e8%83%bd%e6%b5%8b%e8%af%95/

关于c++ - 写 MethodChannel 桥和 Dart :ffi bridge to run c/c++ code to get the response? 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62200517/

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