应用程序和内核之间的典型android cpu分割

应用程序和内核之间的典型android cpu分割,android,kernel,cpu,Android,Kernel,Cpu,在执行典型的CPU绑定应用程序时,Android上内核CPU时间和用户模式CPU时间的典型划分是什么 一款典型的双核ARM android手机,在执行普通应用程序时,不等待用户或网络的i.o 更有用的是,如果系统库的usermode部分和应用程序实际代码中花费的时间之间存在cpu时间分割的数据 (我意识到这是一个非常主观的问题,jvm/jit和其他函数使问题变得复杂,但任何指针(ha!;)都会有帮助。)好吧,这实际上取决于应用程序。在I/O绑定的应用程序中,时间将花费在系统调用中,如read和w

在执行典型的CPU绑定应用程序时,Android上内核CPU时间和用户模式CPU时间的典型划分是什么

一款典型的双核ARM android手机,在执行普通应用程序时,不等待用户或网络的i.o

更有用的是,如果系统库的usermode部分和应用程序实际代码中花费的时间之间存在cpu时间分割的数据


(我意识到这是一个非常主观的问题,jvm/jit和其他函数使问题变得复杂,但任何指针(ha!;)都会有帮助。)

好吧,这实际上取决于应用程序。在I/O绑定的应用程序中,时间将花费在系统调用中,如
read
write
。在一个受计算限制的应用程序中,CPU时间几乎是所有用户的时间。在一个RAM受限的应用程序中(在RAM中执行大量数据操作),CPU将花费大部分时间等待RAM,因为缓存未命中(我认为ARM处理器没有非常大的缓存)


另一方面,如果你的应用做了很多UI工作,而所有的图形处理都是在userland中完成的,那么还有很多I/O绑定操作等待帧缓冲区和输入设备

这完全取决于实际任务。如果它做了大量的I/O,那么内核占主导地位;如果它在做大量的算术运算(例如,使用NEON进行DSP计算),那么用户时间占主导地位。