没有合适的资源?快使用搜索试试~ 我知道了~
可在www.sciencedirect.com在线获取理论计算机科学电子笔记279(1)(2011)61-74www.elsevier.com/locate/entcs完整且独立于平台的呼叫上下文配置文件Java虚拟机艾别克·萨林别科夫菲利普·莫雷沃尔特·宾德1卢加诺大学信息学院卢加诺,瑞士Andreas Sewe Mira Mezini2软件技术集团TechnischeUniversitéatDarmstadtDarmstadt,Germany摘要调用上下文配置文件为每个调用上下文单独收集统计信息。完整的调用上下文概要文件,忠实地代表整个程序的执行是重要的程序行为,这反过来又是重要的程序理解,逆向工程和工作负载characterization的健全的分析。许多现有的Java调用上下文分析器依赖于采样或不完整的插装技术,产生不完整的分析;其他依赖于Java虚拟机(JVM)修改或仅与一个特定的JVM一起工作,从而损害了可移植性。 在本文中,我们提出了一个新的Java调用上下文分析器,它协调了收集的配置文件的完整性和与任何标准JVM的完全兼容性。为了减少测量扰动,我们的分析器收集平台无关的动态指标,例如方法调用的数量和执行的字节码数量。与流行的呼叫上下文分析器相比,我们的工具能够区分多个呼叫站点,一个方法,并支持选择性地分析某些方法(的动态范围)。 我们已经在一系列不同的JVM上使用标准的Java和Scala基准测试评估了我们的profiler引入的开销。关键词:调用上下文分析,JP2,字节码插装,动态插装1引言调用上下文分析是一种常见的分析技术,有助于分析应用程序的动态过程间控制流程。它对于理解和优化面向对象的软件尤其重要,1电子邮件:firstname. usi.ch2电邮地址:lastname@st.informatik.tu-darmstadt.de1571-0661 © 2011 Elsevier B. V.在CC BY-NC-ND许可下开放访问。doi:10.1016/j.entcs.2011.11.00662A. Sarimbekov et al. /Electronic Notes in Theoretical Computer Science 279(1)(2011)动态绑定阻碍静态分析。调用上下文分析因此为每个调用上下文单独收集统计信息,例如方法调用的数量或在调用上下文中花费的CPU时间。动态调用图(DCG)和调用上下文树(CCT)都是众所周知的数据结构,常用于性能表征和优化[1]。各个数据结构中的节点与剖析信息相关联。这样的简档可以包括广泛的动态度量,例如,执行时间或高速缓存未命中。平台无关的动态指标,如方法调用或执行字节码的数量是特别感兴趣的,est在该地区的性能表征。这些指标是可重现的,3准确的,便携式的,并且具有可比性[12,4]。与上下文不敏感的DCG不同,CCT原则上能够捕获调用的完整上下文。尽管如此,由最先进的分析器生成的CCT [17]仍然缺少DCG的著名标记变体中存在的一个关键信息位:关于发出呼叫的单个站点的信息。换句话说,在跟踪整个调用链中的许多方法时,许多调用上下文分析器无法区分单个方法中的多个调用站点在本文中,我们介绍了JP2,一个调用站点感知的分析器,用于平台无关和完整的调用上下文分析。profiler基于可移植的字节码插装技术,用于在运行时生成其profiling数据结构。除了两个用于方法执行数和执行字节码数的计数器之外,每个调用上下文跟踪当前字节码位置;这使得JP能够区分单个方法中的调用位置虽然其中一些功能已经出现在我们早期的JP工具中[6],但本文做出了一些独特的贡献:• 详细描述JP2,第一个捕获完整CCT的呼叫站点感知分析器• 描述了JP2如何在不破坏CCT结构的情况下暂时禁用当前线程的配置文件• JP2在3个虚拟机和22个Java和Scala基准上的性能的严格评估本文的结构如下:第2节给出了与平台无关的动态度量和CCT的背景信息。第3节描述了该工具第4节详细介绍了我们在一系列基准测试和虚拟机上的性能评估第5节讨论相关工作,第6节结束之前。2背景在下文中,我们简要概述了平台无关的动态指标和调用上下文树数据结构。3 用于具有确定性线程调度的确定性程序。A. Sarimbekov et al. /Electronic Notes in Theoretical Computer Science 279(1)(2011)632.1平台无关的动态链接大多数最先进的分析器依赖于高度依赖于平台的动态指标。特别是,CPU消耗时间或挂钟时间是分析器常用的指标。然而,这些指标有几个缺点:对于相同的程序和输入,测量的时间可以根据硬件,操作系统和虚拟机实现而显著不同。此外,准确地测量执行时间可能需要特定于平台的功能(例如特殊的操作系统功能),这限制了分析器的可移植性。此外,通常不可能忠实地再现测量结果。出于这些原因,我们遵循一种不同的方法,该方法仅使用平台无关的动态度量[12,4],即方法调用的数量和执行的字节码的数量。使用这些指标的好处有四个方面:(i) 测量是准确的;轮廓本身不会影响生成的轮廓,也不会导致测量扰动。(ii) 配置文件可以以可移植的方式实现;可以在不同的硬件、操作系统和虚拟机上执行它们。(iii) 在不同环境中生成的配置文件具有可比性,因为它们依赖于同一组独立于平台的指标。(iv) 对于确定性程序,测量是可再现的。虽然方法调用次数的信息是许多可用的分析工具支持的常见指标,但有些分析器并不区分不同的调用上下文,或者只将调用上下文保持在预定义的深度。相比之下,我们的方法能够将方法调用的数量和执行的字节码的数量与任意深度的调用上下文相2.2调用上下文树(CCT)调用上下文树(CCT)[1]是一种常见的数据结构,用于在运行时表示调用上下文配置文件[1,2,25,22,26,9]。CCT中的每个节点都对应于一个调用上下文,并保持为该特定调用上下文测量的动态度量;它还引用收集度量的方法CCT节点的父节点表示调用方的上下文,而子节点对应于被调用方的方法。如果在不同的调用上下文中调用相同的方法,则不同的调用由CCT中的不同节点表示。相反,如果同一方法在同一调用上下文中从同一调用站点被调用多次,则在该方法执行期间收集的动态度量因此,CCT可以通过调用上下文来区分动态度量。这种详细程度在软件工程的许多领域都很有用,例如profiling [1],调试[3],测试[20]和逆向工程[15]。应当注意,数据结构本身不对CCT节点中保持的动态度量的数量和种类施加任何限制;具体地64A. Sarimbekov et al. /Electronic Notes in Theoretical Computer Science 279(1)(2011)180180106643218012060903606090100506050605050根public int findDuplicate(int []nums){public intfindDuplicate(inti =0; j = 0; j++){
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- 基于嵌入式ARMLinux的播放器的设计与实现 word格式.doc
- 经典:大学答辩通过_基于ARM微处理器的嵌入式指纹识别系统设计.pdf
- 嵌入式系统课程设计.doc
- 基于飞思卡尔控制器的智能寻迹车设计ARM基础课程课程设计.doc
- 下载基于ARM7的压电陶瓷换能器导纳圆测量仪的研制PDF格式可编辑.pdf
- 课程设计基于ARM的嵌入式家居监控系统的研究与设计.doc
- 论文基于嵌入式ARM的图像采集处理系统设计.doc
- 嵌入式基于ARM9的中断驱动程序设计—课程设计.doc
- 在Linux系统下基于ARM嵌入式的俄罗斯方块.doc
- STK-MirrorStore Product Release Notes(96130)-44
- STK-MirrorStore Storage Connectivity Guide for StorageTek Disk A
- 龙虾养殖远程监控系统的设计与实现数据采集上位-机软件模块-本科毕业设计.doc
- 龙虾养殖远程监控系统的设计与实现数据采集上位-机软件模块-.doc
- 龙虾养殖远程监控系统的设计与实现数据采集上位-机软件模块-本科生毕业论文.doc
- 麻阳风貌展示网站的设计与实现毕业论文.pdf
- 高速走丝气中电火花线切割精加工编程设计.doc
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功