1

我有一台在有根 android 版本上运行的单板计算机。我有一个使用需要大量 CPU 使用的 opencv 的应用程序。有时应用程序的性能下降是因为另一个进程在 android OS 上运行。我想知道有没有办法改变我的应用程序线程的优先级以避免失去性能。我知道对于未植根的版本,这是不可能的,但是对于植根版本有什么办法吗?

4

2 回答 2

0

在 Linux 上,您可以使用命令nice来做到这一点。您必须使用负参数来增加优先级,并且您必须是 root 用户:

nice --20 name_of_your_command

要更改正在运行的进程的优先级,您可以使用renice

于 2015-08-10T15:01:39.967 回答
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 回答