提问人:Sepultura 提问时间:11/14/2023 最后编辑:Sepultura 更新时间:11/14/2023 访问量:22
为什么 Android 应用程序进程上的 renice 没有效果?
Why does renice on Android application process has no effect?
问:
我正在弄乱 android 进程的漂亮值,并注意到设置我的应用程序的漂亮值似乎不会对系统的其余部分产生任何性能影响。
我尝试的是,我实现了一个启动前台进程的应用程序。此过程在无限循环中计算 Pi。即使我启动了 8 个应用程序(它们都是一样的)并将所有应用程序的良好值设置为 -20,每个进程的 CPU 时间也会均匀分布在所有其他进程中,并且对整个 Android 系统没有明显的性能影响:
所有应用都作为特权应用 (system/priv-app) 安装,并以系统用户身份运行。
我用来设置流程的良好值。renice -n -20 -p PID
但是,如果我使用 adb shell 中启动脚本并将 nice 值设置为 -20,它确实会对系统产生影响。如果我用 -20 启动两个脚本,系统几乎完全无响应:nice
该脚本计算 Pi:
#!/bin/sh
echo "scale=1000000; 4*a(1)" | bc -l
我想知道,为什么 renice 一个 android 进程似乎没有效果(有没有办法做到这一点),但 renice 在从 shell 启动的进程上工作得很好?
我希望我的应用程序占用了大部分 CPU 时间,因此系统变得非常慢且无响应 - 但事实并非如此 - 性能绝对没有明显差异。
我读到了一些关于 linux 中进程自动分组的内容,但是我找不到这里提到的任何配置(例如 或): 进程友好度(优先级)设置对 Linux 没有影响kernel.sched_autogroup_enabled
/proc/$PID/autogroup
/proc/sys/kernel/sched_autogroup_enabled
答: 暂无答案
评论