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