我有一台在有根 android 版本上运行的单板计算机。我有一个使用需要大量 CPU 使用的 opencv 的应用程序。有时应用程序的性能下降是因为另一个进程在 android OS 上运行。我想知道有没有办法改变我的应用程序线程的优先级以避免失去性能。我知道对于未植根的版本,这是不可能的,但是对于植根版本有什么办法吗?
问问题
1588 次
2 回答
0
使用 renice 命令,可以改变进程的优先级。Android 使用完全公平队列来调度进程。
用于创建新进程并更改其优先级:
nice -n 10 command
#means start command and set its nice value to 10
对于已经运行的进程:
toybox renice -p pid -n 10
#means change the pid process nice value to 10, toybox is for Android M
nice 值介于 -20 到 19 之间,ps -t -p将显示所有进程 nice 值:
USER PID PPID VSIZE RSS PRIO NICE RTPRI SCHED WCHAN PC NAME
root 1 0 1372 780 20 0 0 0 SyS_epoll_ 00000000 S /init
root 2 0 0 0 -2 0 1 1 kthreadd 00000000 S kthreadd
对于非实时进程,PRIO = 20 + NICE,值越小,优先级越高
于 2016-06-28T06:12:22.540 回答