热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【原创】xenomai与VxWorks实时性对比(Jitter对比)

版权声明:本文为本文为博主原创文章,转载请注明出处。如有问题,欢迎指正。博客地址:https:www.cnblogs.comwsg1100(下面数据,仅供个人参考)可能大部分人一直

版权声明:本文为本文为博主原创文章,转载请注明出处。如有问题,欢迎指正。博客地址:https://www.cnblogs.com/wsg1100/
(下面数据,仅供个人参考)

可能大部分人一直好奇VxWorks与xenomai对比,实时性孰优孰劣,正好笔者最近要做一个这方面的对比,本文以实时系统其中一个重要指标---Jitter来进行简单对比。
【原创】xenomai与VxWorks实时性对比(Jitter对比)

一、环境

简单介绍一下环境:

硬件平台:双核cortex-A15处理器,CPU频率1.5GHZ,内存2GB。

xenomai:Linux-4.19+xenomai 3.1,具体配置:略;

VxWorks:VxWorks 7,具体配置:略;

注:由于VxWorks benchmark测试包含很多测试项,以下数据为其中包含的几项,每项测试2万次,整个benchmark才跑了两个多小时。xenomai则是每项跑了2小时,周期100us,这样差不多7200万次;

VxWorks读取时间戳耗时:

VxWorks avg min max
bmTimestampRead 0.249 0.162 0.487

xenomai读取时间戳耗时:

Xenomai avg min max
bmTimestampRead 0.163 0.162 0.325

二、时钟中断Jitter对比

1. VxWorks

avg min max
bmIntJitterNoLoad 4.066 0.000 13.338
bmIntJitterSemLoad 4.066 0.000 13.338
bmIntJitterMqLoad 4.066 0.000 13.663
bmIntJitterDelayLoad 4.066 0.000 13.501

bmIntJitterNoLoad 空载,无任何压力。

bmIntJitterSemLoadsemaphore压力,两个同等优先级任务对同一semaphore进行PV操作。

bmIntJitterMqLoad message queue压力,两个同等优先级任务使用两个msgq相互发送接收1byte数据操作。

2.xenomai

测试时间2小时,定时周期100us,次数:7200万次。单位us。(xenomai测试没有VxWorks那么全面,后续添加相应压力测试补充。。。)

avg min max
NoLoad 0.516 0.287 6.198
Load 0.768 0.325 6.859

NoLoad 空载测试,linux普通启动后状态。

Load linux加压,stress -c 10 -m 4,xenomai内核没有压力。

三、任务Jitter对比

1. VxWorks

avg min max
bmTaskJitterNoLoad 4.066 0.000 15.290
bmTaskJitterSemLoad 4.066 0.000 15.778
bmTaskJitterMqLoad 4.066 0.000 15.778
bmTaskJitterDelayLoad 4.066 0.000 15.290

2.xenomai内核态任务Jitter

测试时间2小时,定时周期100us,任务优先级99,单位us。

avg min max
LinuxLoad 0.643 -0.282 10.519

LinuxLoad linux加压,stress -c 10 -m 4,xenomai内核没有压力。

为什么会存在负值?负值表示xenomai内核提前一点点将任务唤醒了。这与xenomai内核的定时处理机制有关,这是可以调整的,可关注本博客后续的xenomai内核解析。

具体数据分布如下:

0 1
0.25 37403654
0.75 5725957
1.25 5300392
1.75 3143282
2.25 2329224
2.75 1360290
3.25 511552
3.75 135384
4.25 37234
4.75 42208
5.25 18950
5.75 4495
6.25 532
6.75 295
7.25 172
7.75 43
8.25 13
8.75 6
9.25 1
9.75 3
10.25 1
10.75 2
11 1

3.xenomai用户态任务Jitter

测试时间2小时,定时周期100us,任务优先级99,单位us。

avg min max
Load 3.605 0.422 13.328

具体数据分布如下:

0 1
0.25 2
0.75 44
1.25 137
1.75 1540
2.25 13471
2.75 1943224
3.25 38106382
3.75 19789463
4.25 6749386
4.75 2940300
5.25 1812680
5.75 549134
6.25 47176
6.75 18063
7.25 16545
7.75 9921
8.25 1391
8.75 389
9.25 132
9.75 97
10.25 104
10.75 46
11.25 18
11.75 21
12.25 6
12.75 4
13.25 2
13.5 1
avg min max
bmTaskJitterNoLoad -0.249 1.637 13.199
bmTaskJitterSemLoad -0.788 1.489 12.087
bmTaskJitterMqLoad -0.241 1.790 12.683
bmTaskJitterDelayLoad -0.211 1.243 12.523

VxWorks毕竟是商业软件,任务及系统的每一个阶段都能详细统计耗时。
xenomai由于其双核的结构,在linux加压还是在xenomai加压都是应该思考的问题。

总的来说,对比VxWorks,xenomai压力太简单,并没有对实时核加压,根据VxWorks测试套件的具体测试方式,来对xenomai进行同样的测试,才更具对比价值。


推荐阅读
  • prometheus学习系列十一:Prometheus报警规则配置LinuxPanda
    prometheus监控系统的的报警规则是在prometheus这个组件完成配置的。prometheus支持2种类型的规则,记录规则和报警规则,记录规则主要是为了简写报警规则 ... [详细]
  • 现象内存占用随着训练过程逐渐增大,最终Outofmemory。即使将不再用到的变量及时删除并使用gc.collect(),也无法解决。解决方案方案 ... [详细]
  • 这这这也太卷了吧,那个天天拉我打王者的人既然进了大厂!我哭了!
    这这这也太卷了吧,那个天天拉我打王者的人既然进了大厂!我哭了!这一次历时两个月,他拿到了一大堆的Offer, ... [详细]
  • mysql和oracle的区别面试题
    为了更好的梳理相关知识,咱们先看纯手绘知识体系图1.1Kafka知识体系大纲由于我手绘这些知识体系大纲是用的xmind软件,无法上传,所 ... [详细]
  • 启动子的分析和预测
    启动子的分析和预测一、摘要加深对基因启动子的理解和认知;学会如何获取已知基因的启动子序列数据;熟悉不同启动子分析软件的使用及其适用范围; ... [详细]
  • 性能测试_聊一聊性能测试指标
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了聊一聊性能测试指标相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 很多人问过我,H5的多线程如何实现WebWorker的?当我们说到这个问题的时候首先你需要知道,什么是WebWorker,那么今天就来给大家解答下这个问 ... [详细]
  • 原文:HowmuchmemorydoJavaScriptarraystakeupinChrome?译者:justjavac由于我(原作者)的代码运用的很大的内存,所以我看了一下字符 ... [详细]
  • 假设Hadoop的安装目录HADOOP_HOME为homeadminhadoop。启动与关闭启动Hadoop1.进入HADOOP_HOME目录。2.执行shbinstart-all ... [详细]
  • 一、配置IP地址1、配置IP地址IP地址是计算机在互联网中唯一的地址编码。每台计算机如果需要接入网络和其他计算机进行数据通信,就必须配置唯一的公网IP地址。配置I ... [详细]
  • 转贴:http:blog.163.commiaoxiaodong78Java推荐读物与源代码阅读江苏无锡缪小东1.Java语言基础谈到Java语言基础学习的书籍& ... [详细]
  • 微信公众号支付(JSAPI支付)微信浏览器会内置WeixinJSBridge对象,但是其可能需要加载时间,可以通过文档代码 ... [详细]
  • hdu 1104 Remainder
    http:acm.hdu.edu.cnshowproblem.php?pid1104a%b(a%b+b)%b;题意:开始给了你n,k,m,每次由+m,-m,*m,modm得到新的N ... [详细]
  • 理论与证明看这里:https:blog.csdn.netqq_39627843articledetails82012572总结一下就是,最小路径覆盖有两种模型&#x ... [详细]
  • 这是我之前博客里提到的一道AC自动机的练手题,但是要完成这道题,我之前博客里提到的东西还不够,这里总结一下这道题。这道题不是一般的裸的AC ... [详细]
author-avatar
9小酒
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有