leesinebee
leesinebee
默认使用tick 统计cpu使用率  重写了weak函数后,精确统计 
- 之前看到有个在idle线程中统计总体cpu usage的函数,但是无法知道某一个线程的使用率。 - 三个weak函数如果没有实现,那么所有的线程使用单位时间内tick计数统计使用率,这样粒度比较粗。如果实现了话,那么所有的线程使用单位时间内tick*timer_prd计数来统计,会更准确。这个timer在stm32上就是systick。 - 三个weak函数分别:1、获取timer_prd,在命令启动时使用。2、获取timer的counter数值,在hook中调用。3、获取timer是否溢出,仍在hook中调用。这是目前想到的比较精确统计每个线程使用率的方法。 - 是的,这个可放在package中比较好。
> 感觉那几个weak函数的实现并不是完全合适的。另外,关于cpu usage,应该有软件包了的吧(不完全确定)。cpu usage实现了,放软件包中也挺好的 rtt的package中确实有一个cpu_usage,可以显示cpu的总体使用率,范围大概从0~100。 rtt的bsp中有一个cpuusage.c的文件,和软件包中的类似,也是显示总体使用率。 cputh能显示thread的使用率,功能上应该和上面的软件包不重复。 看了您的回复,我目前还没想出关于这三个weak函数更好的方法。不知您对这几个weak函数有什么建议,或者其他的改动建议? 另外感觉如果能作为msh内置的命令来显示cpu的使用率会更方便些。
如果放在软件包中,是否要关闭这个PR,然后重新提交。我看到软件包只有索引,不包含代码
> 我建议可以放在 RTT utilities 里,而且最好不要占用各种系统 hook 。避免开启这个功能,导致系统 hook 没法被其他软件包使用 > 单独放到软件包里很多人都不知道这个功能,是不是把结果集成到 ps / list thread 命令里,这样更加方便呀 集成到ps命令里不太方便,目前的实现方法需要经过指定的时间后才能计算统计结果,会影响ps的显示
> 我建议可以放在 RTT utilities 里,而且最好不要占用各种系统 hook 。避免开启这个功能,导致系统 hook 没法被其他软件包使用 是指路径rt-thread\components\utilities?目前的实现方法必须要使用rt_scheduler_hook这个系统hook。或者我们增加一个额外hook供cpuusage使用?