1、丰富的硬件资源、算力下,任务多线程处理更快、更合适
2、紧张的硬件资源下,有可能单一模块成为性能瓶颈,例如1109算力1.2t,但是rga性能较弱,多任务需要考虑串行
3、项目开发前可以充分评估硬件资源,选择合适的任务运行模式
4、cpu性能评估,ddr带宽、cpu占用率、io输入输出、cpu主频
5、因为各厂家任务调度的时钟不一样(linux HZ 一般调度周期为10ms),sleep(1)睡眠时间不一样,例如hisi可能睡眠11ms,rk是真的睡眠1ms,while(1){sleep(1)}; 可能导致系统cpu占有率明显上升(top命令)
6、sleep结束后当前线程被添加到就绪等待队列,wait等待结束后线程也被添加到就绪等待队列,linux任务调度周期一般10ms,这10ms根据优先级被分配给各个就绪等待线程
vmstat查看系统性能概况,自愿上下文切换、非自愿上下文切换次数、中断上下文切换次数
pidstat查看具体线程上下文切换情况
cat /proc/interupt查看具体中断类型
perf top分析具体函数性能情况