【问题标题】:compare android binder's performance with unix-socket将 android binder 的性能与 unix-socket 进行比较
【发布时间】:2019-08-19 11:39:32
【问题描述】:

我使用域套接字和 protobuf 编写了一个 IPC 框架。我在我的 x86 ubuntu 和 anbox 中将 binder 与我的 IPC 框架进行了比较。
当数据大小在 8 byte ~ 4K 之间时,性能没有区别。当数据大小大于 32K 时,我的 IPC Framework 比 binder 好。我认为bidner 传输数据只复制一次,而 domain socket 复制它两次。我该如何解释结果?(anbox应该不会带来性能损失)

【问题讨论】:

  • 您检查了哪个 Binder? Framework Binder 需要编组/解组数据,而 Hardware Binder 不需要。
  • 我选择的Framework binder,虽然需要使用parcel进行marshall和unmarshall数据,但我觉得性能应该不会这样

标签: unix-socket android-binder


【解决方案1】:

带有AIDL 的Binder 将在复制数据之前对其进行编组和解组。如果您的 IPC 不需要该步骤并复制原始数据,您将获得明显的速度优势。因此,在 Android 中复制大量数据通常不通过 Binder 完成。

如果您使用HIDLFast Message Queues 切换到Hardware Binder,情况可能会有所不同。但是,您不能在 Framework Binder 中使用 HIDL。所以这可能不是你的选择。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-01
    • 2015-06-20
    • 1970-01-01
    • 1970-01-01
    • 2021-09-14
    • 2012-11-26
    • 1970-01-01
    相关资源
    最近更新 更多