min*_*hua 8 embedded performance ipc dbus c-api
从我的阅读中看,由于存在守护进程,dbus性能应该比其他消息传递ipc机制慢两倍.
在讨论这样的问题时,Linux IPC技术使用某些人提到了性能问题.除了两倍慢的因素外,您是否看到性能问题?您是否看到阻止dbus在嵌入式系统中使用的问题?
据我所知,dbus是否适用于小消息.如果需要传递大量数据,其中一个解决方案是将数据放入共享内存或堆中,然后使用dbus进行通知.根据所讨论的其他ipc机制正在考虑的是:信号,匿名管道,命名管道或FIFO,SysV消息队列,POSIX消息队列,SysV共享内存,POSIX共享内存,SysV信号量,POSIX信号量,FUTEX锁,文件 - 支持和匿名共享内存使用mmap,UNIX域套接字,Netlink套接字,网络套接字,Inotify机制,FUSE子系统,D-Bus子系统.
我应该提一个列出要求的问题(尽管它以apache为中心):
然而,关于性能的另一个问题,所以提到的技术来提高性能.考虑到这一切,我想在嵌入式系统中使用dbus时应该有更少的问题或缺点.
我认为没有任何实质性和性能问题.
做了一些分析:
在arm926ejs 200MHz处理器上,使用两个uint32参数的方法调用和回复消耗0到15毫秒之间的任何值.平均6毫秒.
将第二个参数更改为1000个字节的数组.如果使用迭代api打包并解压缩第二个参数,则需要大约18毫秒.
1000字节数组的第二个参数.如果使用固定长度的api打包并解压缩第二个参数,则大约需要8 ms.
作为比较,使用SysV msgq将消息传递给另一个进程并获得回复.它也是大约10毫秒,但没有优化代码并重复测试大量样本.
总之,分析不会显示性能问题.
为了支持这一结论,dbus页面上有一个与性能相关的页面,它只指定了双上下文切换,因为使用dbus需要将消息传递给守护进程然后传递到目标.
编辑:如果直接绕过守护程序发送消息,性能将加倍.
| 归档时间: |
|
| 查看次数: |
4041 次 |
| 最近记录: |