SylixOS调试方法详解——性能分析
admin
2023-03-16 05:21:10
0

1. SylixOS调试方法介绍

SylixOS实现了一个功能强大的调试stub(桩),可在设备或模拟器上在线调试应用程序,RealEvo-IDE也提供配套的调试插件。目前RealEvo-IDE既支持自动推送调试、也支持传统的手动启动gdbserver的调试方式。在官方公布的使用手册中没有详细写出在日常开发中非常实用的几种调试方式,本文主要介绍性能分析的调试方法。

在日常开发过程中经常会遇到程序不够快的情况,但是不知道到底慢在哪里,往往是随意寻找函数优化,并没有没有真正定位到程序哪里慢,存在很大的偶然性。性能分析工具就是用动态采样的方式定位真正慢的位置,定位之后再在这个点上进行优化,最终程序运行时间对比是非常明显的。

2. SylixOS性能分析调试步骤详解

2.1.1   性能分析演示demo

SylixOS的性能分析主要是通过加载性能分析模块(sperfs.ko)来查看各个函数消耗的CPU时间,能够准确找到需要优化的点。下面通过建立一个“perfoms_check_app”来做性能分析调试的演示,代码如程序清单 21所示。

程序清单 21  static_check_app代码

//sperfstart sperfs

#include


#define   USE_SLEEP


void module_sleep(int iSecond)

{

#ifdef USE_SLEEP

   sleep(1);

#else

   bspDelayUs(iSecond*1000*1000);

#endif

}


void calc_value(void)

{

   static int i;


   i++;

}

void do_something(void)

{

   /*

    *  do something

    */

   calc_value();

   module_sleep(1);

}


int main (int argc, char **argv)

{

   while (1){

//     do_something();

   }

    return  (0);

}


2.1.2   加载性能分析模块(sperfs.ko)

(sperfs.ko模块为SylixOS性能分析检查提供一种调试工具)

点击IDE界面右上角“Device”;选择目标机器IP地址,这里使用的是虚拟机的IP地址:192.168.7.32,右击IP号打开“Launch FTP”进行传输;然后在本地文件夹中找到sperfs.ko模块,传输路径选择在“/lib/modules”目录下;最后双击sperfs.ko即可完成模块加载的准备工作,具体步骤如图 21所示。

SylixOS调试方法详解——性能分析

图 21  加载sperfs.ko模块方法一

除上述方法外还可以通过“cp”指令将性能分析模块的拷贝在“/lib/modules”目录下,如图 22所示。

SylixOS调试方法详解——性能分析

图 22  加载sperfs.ko模块方法二

完成后在“cd /lib/modules”目录下用“ls”查看是否完成拷贝,结果如图 22所示。

SylixOS调试方法详解——性能分析

图 23  查看是否完成加载

然后通过“chmod”改变文件的权限,再用“modulereg”命令注册性能分析模块,如图 23所示。

SylixOS调试方法详解——性能分析

图 24 注册内核模块

最后通过“sperfstart”命令开启性能分析的功能,再用“sperfs”命令查看性能分析结果,如图 24所示。

SylixOS调试方法详解——性能分析

图 25  开启性能分析模块

除此之外我们通过Talnet再打开一个调试窗口,运行演示程序“perfoms_check_app”,性能分析结果如图 25所示,除空闲线程t_idleo和sperfs.ko外消耗CPU时间最多的函数是程序是performs_check中的main函数,在这里只需要优化该函数就可以减少程序运行时间。

SylixOS调试方法详解——性能分析

                                                                         图 26  性能分析结果                                                

对该函数进行优化,优化结果如程序清单 22所示。

程序清单 22  main函数优化结果

int main (int argc, char **argv)

{

   while (1){

    do_something();

   }

    return  (0);

}



再次进行性能分析,结果如图 26所示,main函数消耗的CPU时间已经大大减少。


图 27  优化后性能分析结果

3. 总结

在SylixOS中可以使用多种调试方式进行相关调试,根据实际情况对程序进行调试,本节主要介绍性能分析检查工具。下一篇文档将通过一个完整的工程文件来描述多种调试方式。

4. 参考资料

《SylixOS应用程序开发手册》

《RealEvo-IDE使用手册》


相关内容

热门资讯

药王更替GIP靶点锋芒毕露 博... 来源:滚动播报 (来源:北京商报) 过去两年,减重药赛道极速完成了路径更迭。以礼来替尔泊肽为代表的G...
无凸轮十二轴弹簧机选型指南:东... 导语:在弹簧制造领域,无凸轮十二轴弹簧机凭借高精度、高效率、高灵活性的优势,成为新能源、航天航空、精...
AI 隐藏“思维链”,是怕被人... OpenAI 这些年最不缺的,就是被放大的人。 Sam Altman 当然不用说,几乎已经成了这家公...
美媒:以色列在伊拉克沙漠秘密建... 据《华尔街日报》5月9日报道,知情人士透露,以色列在伊拉克沙漠地带建立了一个秘密军事据点,以支持其针...
特朗普:预计“很快”收到伊朗对... △美国总统特朗(资料图)当地时间5月9日,央视记者获悉,美国总统特朗普表示,他预计“很快”会收到伊朗...
伊朗拟对霍尔木兹海峡的海底电缆... 据伊朗法尔斯通讯社5月9日报道,伊朗为途经霍尔木兹海峡、承担互联网通信业务的海底光缆,提出了一套管理...
美国一客机起飞过程中撞上行人,... △资料图当地时间5月9日,央视记者获悉,一架从丹佛国际机场飞往洛杉矶的航班在起飞过程中撞上一名闯入跑...
凤凰女记者战地日记丨这哪里还算... 【编者按】这是凤凰卫视驻伊朗记者李睿的战地日记。她身处德黑兰,既是战争的亲历者,也是观察者。在她的日...
中国发布禁令,禁止美国制裁中国... 2026年4月24日美国发布公告,把中国5家石化企业列入制裁名单,理由是参与或协助伊朗的石油交易,引...
电力系统母线安全保护领域取得关... (来源:中国电力新闻网) 转自:中国电力新闻网 近日,山西铝业自主研发的《弧光保护系统安装优化方法、...