nul*_*ter 35 multithreading android multiprocessing
单线程应用程序是否使用四核手机中的所有4核心.我搜索了很多,发现一些文章说是,有些说不.有些文章甚至说Android操作系统没有使用4核心.
Android能够在四核处理器中使用所有4个内核吗?
单线程应用程序是否使用多核心?
Gag*_*gan 20
答案是肯定的.
Android基本上是建立在Linux内核之上的,它使用了mulit-core.就单线程应用程序而言,请记住,线程不能同时在不同内核上的部分执行.因此,虽然您的单线程可以在不同的时间点由不同的核心执行,但它不能被细分同时由不同的核心执行.
话虽如此,请注意像Qualcomm这样的芯片组制造商正在开发能够将您的单线程应用程序代码(当且仅当存在互斥部分)细分为多个线程并使其在不同核心上运行的智能处理器.同样,基本原理保持不变 - 为了利用多核,单线程被细分为多个线程.
为了充分利用您的多核芯片,您宁愿创建一个具有最大可能异步线程的多线程应用程序,以便最佳地利用最大内核数.希望这清楚.
编辑:
这也转换为 - 不使用多个异步线程(或任何其他并行构造)的应用程序不会使用多个核心.
The*_*der 10
在基于四核CPU的移动设备上,操作系统可以根据当前CPU负载和任务/活动优先级动态地将工作负载分配到适当的CPU核心.例如,如果两个CPU核心正忙于处理诸如Android应用程序更新,文件压缩和媒体处理等长任务,则操作系统可立即将延迟敏感任务(如触摸输入)分配给可用的第三或第四核心,以提供更快的响应速度.当有多个任务同时运行时,当有多个核可用于服务这些请求时,可以更快地为这些任务的排队请求提供服务.
Android操作系统是从Linux发展而来的,因此对多任务处理和多线程提供原生支持.最近发布的Android 2.3和Android 3.0/3.1/3.2增加了一些功能,可以提高操作系统利用多核CPU处理能力的能力.Firefox和Webkit等移动浏览器基于其桌面版本,因此本身包含对多线程的支持.Android 3.0附带的新浏览器不仅支持多线程,还支持选项卡式浏览.这些浏览器能够利用多核CPU提供的增强处理能力,提供更快,更好的Web浏览体验.
以下图片将描述更多:
该图显示了在浏览流行的纽约时报网站时四核CPU系统的每个核心的利用率.从图中可以看出,浏览器使用四核CPU的所有四个核心,并且这种并行处理产生的Web浏览体验比基于双核CPU的移动设备上的6快得多.四核CPU还为支持标签式浏览的浏览器提供更高的性能.
下图显示了在Web浏览器中打开多个选项卡时四个CPU核心的CPU利用率.事实上,选项卡式浏览使用了大量的CPU处理,如图所示,甚至可能使四核CPU的所有四个内核饱和.
Android操作系统应该利用所有内核的原因:(因为我是Android开发人员所以原因与Android Developer的观点有关)
由于移动游戏的快速增长,开发人员正在将流行的PC和控制台游戏引擎移植到移动环境中.这些游戏引擎最初是为多核桌面PC平台开发的,因此将利用移动处理器中的多核CPU为移动游戏玩家带来直接的好处.四核CPU为游戏开发人员提供了强大的处理能力,使开发人员能够包括高级物理效果,人工智能,碰撞检测/避免,虚拟纹理,更好的网络可玩性等.四核CPU和可变SMP技术将使移动设备进一步提升性能范围,并允许应用程序和游戏开发人员提供新的移动体验,同时延长最流行用例的电池寿命.
随着移动游戏的复杂性和视觉丰富度的增加,可下载游戏内容的相应文件大小也大大增加.通常,游戏文件大小太大以至于下载游戏所花费的时间超过购买后用户要求退款的十五分钟退款时间,如果他们不喜欢游戏的话.这不仅会让玩家感到沮丧,而且还会使购买者无法购买需要大量文件下载的高级游戏.
实时动态纹理生成技术允许游戏开发者对游戏进行编码,从而基于游戏的叙述和状态实时创建游戏中所需的纹理.由于纹理是在运行中生成的,因此不必在购买时提供它们.使用这种技术,游戏开发人员可以将游戏文件大小减少几个数量级.在4核CPU的游戏中看看下面的场景变化.
是.Android 3.0是该平台的第一个版本,旨在在单核或多核处理器架构上运行.
即使是单线程应用程序也可以从不同内核上的并行处理中受益.
例如,如果您的应用程序使用媒体服务器,则媒体处理和UI呈现应用程序逻辑可以同时在不同的核心上运行.此外,垃圾收集器可以在不同的核心上运行.
有关详细信息,请查看下面的链接
https://developer.qualcomm.com/blog/multi-threading-android-apps-multi-core-processors-part-1-2.
https://developer.qualcomm.com/blog/multi-threading-android-apps-multi-core-processors-part-2-2.
说你的使用图形.要渲染相同的应用程序,您可以使用多核.您可以在下面的链接中查看相同的内容.
https://youtu.be/vQZFaec9NpA?t=459 (图形和性能)
http://android-developers.blogspot.in/2010/07/multithreading-for-performance.html
查看此pdf.向下滚动到幻灯片22.可能很有用
http://elinux.org/images/1/11/Application-Parallelization-Android-KlaasVanGend.pdf