基于逆向工程和插桩技术的软件性能分析

被引量 : 1次 | 上传用户:mythdream1
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
随着软件系统日益庞大,系统的性能显得尤为重要。软件系统源程序中函数的调用关系、调用次数以及执行时间是衡量其性能的重要指标。静态分析源程序可快速了解源程序的整体结构,通过扫描源程序获取静态性能数据,是一种预测程序性能的方式,但不能掌握系统的实际运行情况,获取的数据精确度不高,且数据量庞大,重点信息不突出;动态分析能反映程序实际运行的主干,得到的数据准确,但需要运行程序,由于植入了部分采集代码而导致效率不高,并且与执行路径相关,不能反映源程序的所有信息。本文在深入分析逆向工程中源码分析技术以及插桩技术的基础上,重点研究了静态和动态性能数据的提取方法。静态分析模块分析设计了词法分析器和语法分析器,通过词法分析器和语法分析器对源程序进行抽象,获取静态性能数据,包括函数调用关系和调用次数,在此基础上可分析得到热点函数。静态性能数据以调用树的形式存储在内存中。动态分析部分提出了一种对目标文件格式的可执行文件进行插桩的方法,动态分析模块主要有采集程序和粘接代码两部分,采集程序是ELF格式的,包含了采集动态信息的核心算法,其中函数执行时间计时采用分片计时策略;粘接代码用于帮助采集程序获取控制权,这两部分代码将和可执行文件链接到一起运行到目标机上,在执行程序的同时,采集程序搜集动态性能数据,包括函数的执行时间和调用次数,并以调用森林的形式存储在内存中。静态性能分析与动态性能分析,无论从数据处理还是结果呈现方面都表现出相互渗透的特征,本文提出了静态与动态结合分析软件系统性能的框架,对获取的静态和动态数据进行融合处理。在系统实际运行环境下,函数之间的调用关系是相对趋于稳定的,且实际的调用比静态分析出的调用要少很多,即动态的调用关系是静态调用关系的子集,所以本文采用在静态调用树的基础上融入动态数据的方式,融合两方面的性能数据,最后以调用图的形式呈现软件系统的性能特征,辅助程序开发人员理解程序,了解程序的动态行为,发现性能瓶颈,明确程序优化的方向,采用动静态结合的方式,提高性能数据的全面性和准确性。
其他文献
石墨烯由于其独特的几何结构与优越的电学性质而成为科学界研究的热点。本文采用基于密度泛函的第一性原理与非平衡格林方法,研究了空位缺陷的锯齿型石墨烯纳米带的电子结构
<正>党的十九大报告关于"产业兴旺、生态宜居、乡风文明、治理有效、生活富裕"的论述,勾勒出乡村振兴的美丽图景,真切地反映了每个游子对家乡美好的期待。2018年春节假期,如
某工程基坑具有周边环境开阔、开挖范围内土质条件差、基坑平面形状不规则、开挖面积大等特点。对比优选对撑和角撑的结合、环形支撑、锚杆拉撑等支撑形式,大部分区域采用对
具有大开孔(d / D≥0.5)的圆柱壳是压力容器及管道连接中最常用的结构之一。采用非线性有限元法对这种结构进行了弹塑性分析,确定了孔边的应力集中系数,初始屈服的载荷及位置,塑性区扩
米歇尔.福柯是当代颇具影响力的哲学家之一,也是具有代表性的后现代主义思想家。他的研究涉及历史、艺术、文学、心理和社会等诸多方面。他开创了知识考古学的研究方法,并通过
随着社会的发展,企业的管理者已经把人力资源看作是企业各种战略资源中最为重要的一种资源。人力资源成本的使用和管理对企业的发展有着极其重要的意义。企业应根据自身的特
目的:观察愈痛合剂治疗寒凝血瘀型原发性痛经的临床疗效及安全性,为临床治疗原发性痛经提供一种新的方法。方法:选取85例寒凝血瘀型原发性痛经患者,采用简单、随机、单盲方法分为
随着中国经济总量不断增加,国内城市北京、上海和广州在世界城市体系中的地位不断提升,目前都已进入GaWC世界城市排名的前列。本文重点关注广州在世界城市体系中地位。从全球
哈大客运专线是我国在严寒地区设计、建造的第一条客运专线,穿越东北中部山前平原重度季节冻土区。由于列车行驶速度很快,所以对路基的高平顺和稳定性就提出了很高的要求,而
本文以马林诺夫斯基的器物、组织、价值文化三因子为分析框架,论证以"仁"为核心伦理价值的中国文化,有可能伴随中国经济的发展而复兴。印度、巴西、俄罗斯、南非、印度尼西亚
会议