摘要
用户级工具支持分析现代jvm为桌面和服务器上的Java应用程序执行是相当成熟,从开放的JDK的Java飞行记录器启用低开销CPU和堆分析,通过第三方异步profiler(例如async-profiler、honest-profiler),打开JDK支持低开销跟踪分配调用网站。
另一方面,尽管语言执行环境之间的架构相似,但在Android上分析Java代码性能的工具支持却明显滞后。这类工具中最流行的,但实际上也是唯一的工具是Android Profiler,它提供有关CPU、Java堆和网络活动的进程级信息。它还提供对方法跟踪和抽样的支持。但是,前者的开销很高,而后者在提供更好的性能的同时,牺牲了精度。Android Profiler提供的信息可以用其他工具收集的数据进行扩充,特别是在操作系统级别收集数据的systrace。不出所料,第三方工具最近也开始出现,如Facebook的Profilo框架。然而,使用这些额外的工具需要使用多个工具链),可能需要一定的手动工作(例如,在一种特殊的方式建立应用程序,将分析框架API调用插入到应用程序),它是很必要的推断从数据收集有趣的信息(例如,因为只有公开可用的工具框架的一部分)。
在本文中,我们描述我们在毫微秒示波器的工作,一个开源的Android可扩展的工具,不仅适用于修改的应用程序和提供精确方法开销较低的痕迹,也旨在给程序员选择相关信息在同一框架来帮助他们开发一个直觉具体non-performant应用程序行为。这里的权衡是,Nanoscope需要一个定制的Android构建,因为它依赖于来自艺术的额外支持。在这篇论文中,我们将描述奈米镜的设计与实现,提供从该工具可获得的与性能相关的信息的例子,并讨论奈米镜相关的开销。
作者
Lun刘,利兰Takamine,亚当Welc
链接
论文全文
“用Nanoscope分析Android应用程序”(PDF)
编程系统团队