Open DDS的那些坑

本文记录了在使用OpenDDS过程中遇到的各种问题,包括Windows与Linux平台上的DLL兼容性问题、调试与发布版本不兼容、内存泄漏、日志系统不足等。此外,还提到了OpenDDS的特性支持复杂、版本差异、网络协议限制以及多环境适配的挑战。同时,文章还提出了针对OpenDDS的定制需求和性能优化建议,如Qos定制、监控改进和并发性能提升。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对使用OpenDDS过程中,发现的问题点或待优化项目,记录如下:

问题点:

  1. Windows平台上,vs2005、vs2010、vx2013等IDE集成开发环境中编译的dll不能相互调用,出现异常崩溃的现象是正常的;
  2. Linux平台上,内核版本差距比较大时或glibc的版本差距大或不一致时,也可能导致.so库文件调用异常,ACE+DDS都需要重新编译;
  3. debug版和release版的表现,不一致,存在不能互通用的现象;
  4. 某些调用或调用异常后,导致应用端内存增长,出现内存泄漏的现象;
  5. 编译过程中,Windows和Linux系统都可能需要人工干预,如编辑Makefile、拷贝某些不能自动产生的java文件等;
  6. 特性支持比较复杂,需要额外的第三方库或源代码,如dds4ccm_opendds、xerces、QOS_xml;
  7. 不同版本间的使用模式有区别,否则会失败或崩溃,如3.8和3.13间的差别;
  8. 日志文件只有一个,不支持轮转和文件大小特性;
  9. OpenDDS的大部分日志,可读性不强,不能有效反应整个生命周期的关键线索,日志中的上下文参数和描述不清楚;
  10. 如在MFC、Qt中,不使用ACE_TMAIN时,需要单独调用某个逻辑ACE:init方法;
  11. 为了增加应用通讯域数量和业务应用间的部署,需要增加多domain的配置文件,手动增加配置;
  12. UDP不支持可靠性;RTPS_UDP通讯协议,支持可靠性Qos;
  13. Windows上单播发现不成功;
  14. Linux平台,TCP协议传输时,sub方停止
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

pony12

助力1000篇OpenDDS文

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值