从我的阅读来看,由于存在守护进程,dbus 性能应该比其他消息传递 ipc 机制慢两倍。
在讨论使用哪种Linux IPC技术的so问题的问题时,有人提到了性能问题。除了两倍慢的因素之外,您还看到性能问题吗?您是否看到阻止 dbus 在嵌入式系统中使用的问题?
据我了解,dbus 是否适用于小消息。如果需要传递大量数据,一种解决方法是把数据放到共享内存或者堆里,然后用dbus通知。根据讨论的其他 ipc 机制是:信号、匿名管道、命名管道或 FIFO、SysV 消息队列、POSIX 消息队列、SysV 共享内存、POSIX 共享内存、SysV 信号量、POSIX 信号量、FUTEX 锁、文件-使用 mmap、UNIX 域套接字、Netlink 套接字、网络套接字、Inotify 机制、FUSE 子系统、D-Bus 子系统的支持和匿名共享内存。
我应该提到另一个列出要求的问题(尽管它以 apache 为中心):
- 面向数据包/消息
- 处理点对点和一对多通信的能力
- 没有层次结构,没有服务器和客户端
- 如果一个端点崩溃,必须通知其他端点
- 现有 Linux 发行版的良好支持
- Apache 存在一个“绑定”,目的是创建动态页面——尽管这太具体了,在一般嵌入式 dbus 使用讨论中可以忽略它
另一个关于性能的问题提到了提高性能的技术。考虑到所有这些,我想在嵌入式系统中使用 dbus 时问题或缺点应该更少。