一种面向嵌入式欧拉操作系统的性能指标测试方法及系统与流程

摘要: 本发明属于软件测试,涉及一种面向嵌入式欧拉操作系统的性能指标测试方法及系统。背景技术:1、欧拉操作系统(openeuler)是由华为捐赠、开放原子开源基金会运营...
一种面向嵌入式欧拉操作系统的性能指标测试方法及系统与流程

本发明属于软件测试,涉及一种面向嵌入式欧拉操作系统的性能指标测试方法及系统。

背景技术:

1、欧拉操作系统(openeuler)是由华为捐赠、开放原子开源基金会运营的国产开源操作系统,依托统一架构实现全场景、多算力硬件适配,可与鸿蒙生态互通,在多架构兼容层面具备传统实时操作系统(rtos)不具备的优势,是国内数字基础设施国产化的核心基础软件。目前国外暂无同类操作系统的配套测试技术研究,openeuler已广泛落地智能家居、智慧出行等民用领域,而航天、军工等关键嵌入式场景的应用仍处于起步阶段。

2、航天装备对软件实时性、运行可靠性具备严苛约束,其性能验证标准与民用设备存在显著差异,需精准量化任务切换、任务抢占、中断响应等硬实时指标,同时持续监控内存泄漏等长期运行风险。现有通用性能测试工具如linuxperf、tracecompass均基于通用linux内核设计,未针对openeuler内核调度、中断、内存管理机制深度适配,在纳秒级实时指标采集、动态内存异常监测上存在明显技术空白。行业内传统高精度测试方案分为两类:一是依靠示波器、逻辑分析仪等外部硬件设备采集时序信号,设备部署复杂、硬件成本高,不适合嵌入式机载、弹载小型化设备;二是源码人工插桩采集运行数据,插桩代码会修改原始业务时序、占用系统算力与内存资源,侵入性较强,极易造成测试结果失真。同时两类方案均依赖人工记录、核算指标,自动化程度低,批量型号软件测试时人力成本高、测试周期长,难以满足军工国产化替代过程中大批量嵌入式openeuler应用软件标准化、精准化性能验证需求。

技术实现思路

1、本发明的目的在于解决现有技术中通用测试工具对openeuler适配性不足,传统硬件测试、人工插桩测试方式存在部署复杂、侵入性强、测量精度不足的的技术问题,提供一种面向嵌入式欧拉操作系统的性能指标测试方法及系统。

2、为了达到上述目的,本发明采用以下技术方案予以实现:

3、第一方面,本发明公开一种面向嵌入式欧拉操作系统的性能指标测试方法,包括:

4、创建同优先级的第一任务和第二任务,在第二任务创建完成时刻采集时间戳t1,在第二任务调度执行入口采集时间戳t2,基于两个时间戳差值计算单次任务切换耗时,重复多轮采样后取均值得到标准任务切换时间;

5、创建持续运行的低优先级任务与初始阻塞态的高优先级任务,在低优先级任务内触发高优先级任务就绪并采集时间戳t1,在高优先级任务执行入口采集时间戳t2,基于两个时间戳差值计算单次任务抢占耗时,重复多轮采样后取均值得到标准任务抢占时间;

6、设置高精度定时器,预设定时器周期,为定时器设置一个回调函数,当定时器计时结束后调用该函数执行,该函数设置为单次触发,函数内部设置下一次的定时启动,计算从启动定时器到回调函数开始执行之间的差值并消除计算差值误差;

7、注册周期性内存采样定时器任务,周期性调用嵌入式欧拉操作系统原生内存统计接口采集空闲内存和最大连续空闲内存块和内存分配总次数指标,对多周期采集的内存指标做趋势拟合分析,识别内存只分配不释放、堆栈溢出类资源泄漏异常并输出预警;

8、将任务切换时间、任务抢占时间、中断响应时间和内存泄漏趋势检测流程集成执行,汇总全部测试均值与内存异常告警信息。

9、进一步的改进在于:

10、集成执行各项检测流程时,自动剔除单次采样耗时数值趋近于0的无效采样数据,仅采用有效采样数据参与算术平均值计算。

11、从应用层层面对中断响应时间进行测量中断响应时间,无需外接独立信号发生器硬件。

12、所述内存指标趋势拟合分析判定内存泄漏的逻辑为:若连续多周期采样得到的空闲内存持续下降、内存分配总次数持续上涨且无匹配的内存释放记录,则判定存在内存泄漏风险并主动输出预警提示。

13、所述识别的资源泄漏异常分为两类:一是动态堆内存分配后未执行释放操作引发的内存泄漏;二是任务运行过程中堆栈持续溢出引发的系统资源异常。

14、所有时间戳均通过系统提供的高精度定时器函数统一采集,保障各项指标测量精度统一至纳秒级。

15、所述原生内存统计接口为操作系统内置命令,通过周期性调用可实现批量读取系统内存运行统计数据。

16、集成执行四项性能检测流程时,按照任务切换时间测试、任务抢占时间测试、中断响应时间测试、内存泄漏周期采样检测的固定顺序依次执行。

17、第二方面,本发明公开一种面向嵌入式欧拉操作系统的性能指标测试系统,包括:

18、任务切换时间自动化量化测试模块,用于创建同优先级的第一任务和第二任务,在第二任务创建完成时刻采集时间戳t1,在第二任务调度执行入口采集时间戳t2,基于两个时间戳差值计算单次任务切换耗时,重复多轮采样后取均值得到标准任务切换时间;

19、任务抢占时间自动化量化测试模块,用于创建持续运行的低优先级任务与初始阻塞态的高优先级任务,在低优先级任务内触发高优先级任务就绪并采集时间戳t1,在高优先级任务执行入口采集时间戳t2,基于两个时间戳差值计算单次任务抢占耗时,重复多轮采样后取均值得到标准任务抢占时间;

20、纳秒级中断响应时间精准测试模块,用于设置高精度定时器,预设定时器周期,为定时器设置一个回调函数,当定时器计时结束后调用该函数执行,该函数设置为单次触发,函数内部设置下一次的定时启动,计算从启动定时器到回调函数开始执行之间的差值并消除计算差值误差;

21、动态内存泄漏在线预警检测模块,用于注册周期性内存采样定时器任务,周期性调用嵌入式欧拉操作系统原生内存统计接口采集空闲内存和最大连续空闲内存块和内存分配总次数指标,对多周期采集的内存指标做趋势拟合分析,识别内存只分配不释放、堆栈溢出类资源泄漏异常并输出预警;

22、一体化性能汇总输出模块,用于将任务切换时间、任务抢占时间、中断响应时间和内存泄漏趋势检测流程集成执行,汇总全部测试均值与内存异常告警信息。

23、与现有技术相比,本发明具有以下有益效果:

24、本发明公开了一种面向嵌入式欧拉操作系统的性能指标测试方法,相较于现有针对嵌入式欧拉操作系统的性能测试手段,如linuxperf、tracecompass等通用适配工具,以及依靠示波器、逻辑分析仪、人工代码插桩的传统测试方式,本发明方法具备全方位、可落地的技术优势,能够针对性解决现有方案适配性差、侵入性强、自动化程度低等痛点。首先,,全部数据采集依托欧拉系统原生系统调用与纳秒级计时器api实现,全程无需外接示波器、逻辑分析仪等外部测试硬件,省去硬件设备采购、接线调试、信号校准等配套工作,大幅降低测试硬件成本与现场部署门槛;同时方案无需对被测应用软件植入人工插桩代码,不会修改原有业务执行逻辑,避免插桩操作干扰系统原生调度时序、篡改运行数据的缺陷,测试侵入程度更低,采集得到的各项耗时指标能够真实还原嵌入式软件实际运行状态,测试结果可信度更高。其次,本发明针对三类核心实时性指标设计标准化量化测量逻辑。针对任务切换、任务抢占耗时采用双时间戳采集结合多轮采样均值计算的方式,消除单次调度波动带来的测量误差;创新采用应用层测试方案,即定时器挂接回调函数测量中断响应时间,填补了现有工具无法精准捕获欧拉系统中断响应耗时的技术空白,能够满足航天、军工高实时性嵌入式设备的严苛测试标准。再者,本方法设置周期性内存采样定时器任务,持续采集空闲内存、最大连续空闲内存块、内存分配总次数三类核心参数,通过多周期数据趋势拟合分析,可在线识别动态堆内存未释放、任务堆栈溢出两类典型资源泄漏问题,并主动输出预警信息,无需停机复现故障场景,能够提前预判系统性资源耗尽风险,提升嵌入式设备长期稳定运行的可靠性保障能力。最后,方案将四项性能检测流程一体化集成执行,统一汇总调度耗时指标、中断指标、内存异常告警信息并生成标准化测试报告,测试过程可全自动运行,自动过滤趋近于0的无效采样数据,减少人工干预、数据记录、指标核算等重复工作,有效压缩整体测试周期、降低人工测试成本,适配国产嵌入式欧拉操作系统在军工、航天等国产化替代场景下大批量应用软件性能验证需求。

25、本发明公开了一种面向嵌入式欧拉操作系统的性能指标测试系统,本系统为模块化纯软件测试架构,各功能模块协同完成嵌入式欧拉操作系统全维度性能自动化检测,有效克服现有通用测试工具适配不足、传统硬件测试设备部署繁琐、人工插桩侵入性强、测量精度不足等缺陷。分层式纯软件测试体系搭建模块依托系统原生接口完成数据交互,无需示波器、逻辑分析仪等外部硬件,无需向被测软件植入插桩代码,降低硬件采购与调试成本,同时避免修改业务时序干扰真实运行状态,测试结果真实可信。任务切换、任务抢占、中断响应三类测试模块通过多轮时间戳采样均值计算消除单次调度波动误差,依托双gpio联动计时机制实现纳秒级中断耗时测量,填补国产嵌入式欧拉系统实时指标精准测试空白,满足军工、航天高实时设备严苛验证标准。动态内存泄漏在线预警检测模块持续采集内存指标并做趋势分析,可在线识别堆内存未释放、任务堆栈溢出隐患并主动预警,无需停机复现故障,提前规避系统资源耗尽风险。一体化性能汇总输出模块整合全部测试流程自动执行,统一汇总指标与告警信息生成标准化报告,减少人工记录、核算、整理工作量,大幅缩短测试周期;各功能模块解耦独立,可按需单独调用或批量联动执行,框架轻量化、易移植,适配嵌入式国产化大批量应用软件性能验证工作。