ARM安卓应用CPU单核单线程性能分析工具的设计与实现
发布时间:2020-07-06 13:51
【摘要】:近年来ARM安卓已成为市场占有率最高的移动智能终端平台。各类安卓应用层出不穷的同时,应用的规模和复杂程度不断提高。安卓移动终端的交互方式和硬件特性决定了应用必须要充分利用硬件资源才能具备良好的用户体验。对安卓应用的本地库部分进行针对CPU微体系结构的性能分析和优化有助于应用开发人员开发出充分利用CPU资源,具有良好用户体验的应用。但却缺少高效的性能分析工具。本文主要研究并开发了一种ARM安卓平台基于硬件性能计数器的性能分析工具。通过对Oprofile性能分析工具的结构、工作方法进行深入的分析。参考其实现过程,针对Oprofile未将软硬件性能信息综合利用以及没有用户控制界面的不足,完成了性能分析模型的引入和用户控制界面的实现。研究了数据采集模块,实现了结合按时间和Linux内核的跟踪点(Tracepoint)的中断采样,支持全系统范围采集处理器微体系结构行为特征数据。改进了 Google Protobuf中的Varint编码方法对采集的数据进行了有效的压缩,节约了大量存储空间。基于TCP/IP协议,设计了应用层通信协议,实现了宿主机端和目标机端通信模块,搭建了宿主机与目标机之间安全高效的数据传输的通道。本文关键的工作在于数据分析模块,将软硬件性能数据综合利用,使用了自顶向下的微体系结构性能分析方法,对程序热点建立CPI-Stack性能分析模型,并于用户控制界面之中图形化显示,方便了应用开发人员进行处理器微体系结构层级的性能分析,快速而准确的定位性能瓶颈,进行高效的性能分析和优化。同时本文工具使用时带来的额外开销是5.07%,处于可以接受的范围。
【学位授予单位】:东南大学
【学位级别】:硕士
【学位授予年份】:2017
【分类号】:TH724
【图文】:
能终端推出了邋Android操作系统。Android系统以开源,平等,免费,应用开发简单等特性赢得了硬件逡逑产商和软件开发者的喜爱,各大主流终端制造商都开始大规模推出各种智能终端,各类型应用层出不穷。逡逑如图1-1所示,截至2017年3月,Google邋play应用商店的各类应用的数量达280万[1]。以智能手机为逡逑代表的移动终端己成为了人们日常生活中必不可少的多元化设备。与此同时,Android也迅速成为市场逡逑占有率第一的移动操作系统。逡逑Google邋Play:邋Number邋of邋Available邋Apps邋2009-2017逡逑3,000,000邋2,800,000逡逑2,400,000邋ra逡逑2,500,000逡逑2,000,000邋_邋__0■邋■逡逑1邋^00邋000逦1'|300,000逡逑',邋1000
图2-2邋NDK开发流程简图逡逑为了提高应用的性能表现,在很多情况下必须得在开发效率和运行效率中间做出权衡,使用Java和逡逑C/CH语言协同开发是一种很好的选择,开发流程如图2-2所示。应用的主体采样Java语言开发,而性逡逑能关键的部分则使用C/C++语言甚至是汇编语言完成(使用NDK开发成原生共享库),以共享库(libXX.so逡逑文件)的形式通过JNI接口来提供给上层Java程序调用,从而开发出响应速度更快,耗能更少,即能逡逑提供更好用户体验的安卓应用。当前有相当数量的Android应用程序采样Java和C邋/邋C++语言混合开发逡逑的方式。这些应用程序主要包括:视频编解码应用(多使用FFmpeg库)、2D/3D游戏应用(多使用逡逑Skia/OPenGL邋ES邋库)。逡逑2.2邋Android应用的性能分析和优化逡逑移动智能终端市场竞争十分之激烈,一款优秀的应用在具备完整功能的同时,还必须具备良好的性逡逑能。应用性能直接关乎用户体验(流畅程度和续航表现),对于交互式Android应用来说更重要。Android逡逑移动智能终端独特的人机交互方式和移动端的特性,体积较小硬件资源有限。应用必须要利用好硬件资逡逑源(CPU)才能提供给消费者良好的用户体验(缩短响应时间
逦^逦^逡逑Source(*.java)邋' ̄^邋JNI邋T逦逡逑图2-2邋NDK开发流程简图逡逑为了提高应用的性能表现,在很多情况下必须得在开发效率和运行效率中间做出权衡,使用Java和逡逑C/CH语言协同开发是一种很好的选择,开发流程如图2-2所示。应用的主体采样Java语言开发,而性逡逑能关键的部分则使用C/C++语言甚至是汇编语言完成(使用NDK开发成原生共享库),以共享库(libXX.so逡逑文件)的形式通过JNI接口来提供给上层Java程序调用,从而开发出响应速度更快,耗能更少,即能逡逑提供更好用户体验的安卓应用。当前有相当数量的Android应用程序采样Java和C邋/邋C++语言混合开发逡逑的方式。这些应用程序主要包括:视频编解码应用(多使用FFmpeg库)、2D/3D游戏应用(多使用逡逑Skia/OPenGL邋ES邋库)。逡逑2.2邋Android应用的性能分析和优化逡逑移动智能终端市场竞争十分之激烈,一款优秀的应用在具备完整功能的同时,还必须具备良好的性逡逑能。应用性能直接关乎用户体验(流畅程度和续航表现),对于交互式Android应用来说更重要。Android逡逑移动智能终端独特的人机交互方式和移动端的特性,体积较小硬件资源有限。应用必须要利用好硬件资逡逑源(CPU)才能提供给消费者良好的用户体验(缩短响应时间
本文编号:2743720
【学位授予单位】:东南大学
【学位级别】:硕士
【学位授予年份】:2017
【分类号】:TH724
【图文】:
能终端推出了邋Android操作系统。Android系统以开源,平等,免费,应用开发简单等特性赢得了硬件逡逑产商和软件开发者的喜爱,各大主流终端制造商都开始大规模推出各种智能终端,各类型应用层出不穷。逡逑如图1-1所示,截至2017年3月,Google邋play应用商店的各类应用的数量达280万[1]。以智能手机为逡逑代表的移动终端己成为了人们日常生活中必不可少的多元化设备。与此同时,Android也迅速成为市场逡逑占有率第一的移动操作系统。逡逑Google邋Play:邋Number邋of邋Available邋Apps邋2009-2017逡逑3,000,000邋2,800,000逡逑2,400,000邋ra逡逑2,500,000逡逑2,000,000邋_邋__0■邋■逡逑1邋^00邋000逦1'|300,000逡逑',邋1000
图2-2邋NDK开发流程简图逡逑为了提高应用的性能表现,在很多情况下必须得在开发效率和运行效率中间做出权衡,使用Java和逡逑C/CH语言协同开发是一种很好的选择,开发流程如图2-2所示。应用的主体采样Java语言开发,而性逡逑能关键的部分则使用C/C++语言甚至是汇编语言完成(使用NDK开发成原生共享库),以共享库(libXX.so逡逑文件)的形式通过JNI接口来提供给上层Java程序调用,从而开发出响应速度更快,耗能更少,即能逡逑提供更好用户体验的安卓应用。当前有相当数量的Android应用程序采样Java和C邋/邋C++语言混合开发逡逑的方式。这些应用程序主要包括:视频编解码应用(多使用FFmpeg库)、2D/3D游戏应用(多使用逡逑Skia/OPenGL邋ES邋库)。逡逑2.2邋Android应用的性能分析和优化逡逑移动智能终端市场竞争十分之激烈,一款优秀的应用在具备完整功能的同时,还必须具备良好的性逡逑能。应用性能直接关乎用户体验(流畅程度和续航表现),对于交互式Android应用来说更重要。Android逡逑移动智能终端独特的人机交互方式和移动端的特性,体积较小硬件资源有限。应用必须要利用好硬件资逡逑源(CPU)才能提供给消费者良好的用户体验(缩短响应时间
逦^逦^逡逑Source(*.java)邋' ̄^邋JNI邋T逦逡逑图2-2邋NDK开发流程简图逡逑为了提高应用的性能表现,在很多情况下必须得在开发效率和运行效率中间做出权衡,使用Java和逡逑C/CH语言协同开发是一种很好的选择,开发流程如图2-2所示。应用的主体采样Java语言开发,而性逡逑能关键的部分则使用C/C++语言甚至是汇编语言完成(使用NDK开发成原生共享库),以共享库(libXX.so逡逑文件)的形式通过JNI接口来提供给上层Java程序调用,从而开发出响应速度更快,耗能更少,即能逡逑提供更好用户体验的安卓应用。当前有相当数量的Android应用程序采样Java和C邋/邋C++语言混合开发逡逑的方式。这些应用程序主要包括:视频编解码应用(多使用FFmpeg库)、2D/3D游戏应用(多使用逡逑Skia/OPenGL邋ES邋库)。逡逑2.2邋Android应用的性能分析和优化逡逑移动智能终端市场竞争十分之激烈,一款优秀的应用在具备完整功能的同时,还必须具备良好的性逡逑能。应用性能直接关乎用户体验(流畅程度和续航表现),对于交互式Android应用来说更重要。Android逡逑移动智能终端独特的人机交互方式和移动端的特性,体积较小硬件资源有限。应用必须要利用好硬件资逡逑源(CPU)才能提供给消费者良好的用户体验(缩短响应时间
【参考文献】
相关期刊论文 前1条
1 季建平;;张忠谋:摩尔定律将死,半导体迎3大机会[J];半导体信息;2014年02期
相关博士学位论文 前1条
1 车永刚;科学计算程序性能分析与优化关键技术研究[D];国防科学技术大学;2004年
相关硕士学位论文 前1条
1 孙松;基于Android NDK的智能灯光系统的设计与实现[D];重庆大学;2014年
本文编号:2743720
本文链接:https://www.wllwen.com/kejilunwen/yiqiyibiao/2743720.html