如何进行零拷贝性能测试

描述

TogetherROS™·Bot零拷贝性能测试

我们使用TogetherROS™·Bot系统内部集成的性能测试工具——performance_test,来评估下开启零拷贝前后的性能差异,这里我们传输的样本数据量是4M。

未开启零拷贝进行数据传输

$ ros2 run performance_test perf_test --reliable --keep-last --history-depth 10 -s 1 -m Array4m -r 100 --max-runtime 30 #未开启

开启零拷贝数据传输:

$ ros2 run performance_test perf_test --zero-copy --reliable --keep-last --history-depth 10 -s 1 -m Array4m -r 100 --max-runtime 30 #开启

cpu

好的,测试已经跑完了,我们把结果放到这里,来分析一下。

在这个测试中,关键有四个指标:

  • 时延,也就是消息从发布者到订阅者的传输时间。不开启零拷贝的情况下,平均为0.004912s,开启零拷贝之后,速度快了差不多40倍,平均为0.000180s。
  • CPU使用率,表示通信活动所占用的CPU时间,大家可以看这个utime指标,开启零拷贝之后时间有显著的提升,消耗CPU的资源少了。
  • 驻留内存,包括通信过程中分配的内存和共享内存,是这个maxrss中的数据,开启零拷贝之后,占用的内存也更少。
  • 样本统计,包括测试中发送、接收以及丢失的消息数量,是这组数据,依然是开启零拷贝之后性能更好。

通过测试,对于大数据通信来讲,零拷贝在CPU消耗、内存占用以及通信延迟抖动方面的性能都会更好。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分