[发明专利]性能分析工具中快速定位函数性能记录的方法及装置有效
申请号: | 201210104308.1 | 申请日: | 2012-04-10 |
公开(公告)号: | CN103365931A | 公开(公告)日: | 2013-10-23 |
发明(设计)人: | 马江 | 申请(专利权)人: | 中兴通讯股份有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30;G06F9/44 |
代理公司: | 北京安信方达知识产权代理有限公司 11262 | 代理人: | 吴艳;龙洪 |
地址: | 518057 广东省深圳市南山*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 性能 分析 工具 快速 定位 函数 记录 方法 装置 | ||
技术领域
本发明涉及在计算机性能分析工具技术领域,一种性能分析工具中快速定位函数性能记录的方法及装置。
背景技术
性能分析工具通常需要以函数为单位记录相关数据,并且,在性能分析工具中,产生数据往往耗时不多,查找函数对应记录所在的位置反而是性能瓶颈。
现有性能分析工具中使用的查找方法,主要包括了hash(哈希)查找类和二分查找类(包括平衡查找树等)两类。这两类查找方法的查找速度都难以得到保证,原因在于:hash查找需要对hash算法自身的参数进行调优才能有较好的性能,但是性能分析工具无法为每一个被测程序做单独优化;而二分查找在面对大规模数据的时候,受制于cache(缓存)的大小,内存访问次数快速上升,性能下降非常明显。
发明内容
本发明解决的技术问题是提供一种性能分析工具中快速定位函数性能记录的方法及装置,为性能分析工具中提供一种快速定位函数性能记录内存的方法,使其在面对大规模数据和高频率性能采样时,仍能保持优秀的性能。
为解决上述技术问题,本发明提供了一种性能分析工具中快速定位函数性能记录的方法,
在被测程序的生成阶段,为所述被测程序中的每一个被测函数进行编号,统计被测函数的总个数,并根据统计的所述被测函数的总个数创建局部性能记录数组;
在所述被测程序的运行阶段,根据所述被测函数的编号从所述局部性能记录数组中查找所述被测函数对应的性能记录。
进一步地,所述局部性能记录数组中存放每个被测函数对应的性能记录单元,或者每个被测函数对应的性能记录单元的指针。
进一步地,在所述被测程序的生成阶段,编译器生成表达被测函数编号的代码;链接器在重定位时修改编译器生成的代码,为每个所述被测函数生成函数编号。
进一步地,在所述被测程序的生成阶段,所述编译器为被测函数挂接性能测量钩子函数,并将被测函数的编号作为性能测量钩子函数的传入参数;
在所述被测程序的运行阶段,所述被测函数运行时进入所述性能测量钩子函数,所述性能测量钩子函数从传入参数中获得所述被测函数的编号,并将所述被测函数的编号作为数组下标,在局部性能记录数组中查找到对应的性能记录。
进一步地,所述链接器完成链接后,将所述性能测量钩子函数、与性能分析工具的初始化函数作为一个单独的目标文件,分别链接进入所述被测程序以及被测动态库;
所述被测程序启动或者所述被测动态库被装载时,所述被测程序或者所述被测动态库的初始化函数根据统计的所述被测函数的总个数创建所述局部性能记录数组。
本发明还提供了一种性能分析工具中快速定位函数性能记录的装置,包括性能记录关联模块和性能记录查找模块,其中:
所述性能记录关联模块用于,在被测程序的生成阶段,为所述被测程序中的每一个被测函数进行编号,统计被测函数的总个数,并根据统计的所述被测函数的总个数创建局部性能记录数组;
所述性能记录查找模块用于,在所述被测程序的运行阶段,根据所述被测函数的编号从所述局部性能记录数组中查找所述被测函数对应的性能记录。
进一步地,所述性能记录关联模块进一步包括编译器代码生成单元和链接器函数编号生成单元,
所述编译器代码生成单元用于,生成表达被测函数编号的代码;
所述链接器函数编号生成单元,在重定位时修改所述编译器代码生成单元生成的所述表达被测函数编号的代码,为每个所述被测函数生成函数编号。
进一步地,所述性能记录关联模块进一步还包括编译器钩子函数植入单元,
所述编译器钩子函数植入单元用于,在所述被测程序的生成阶段,为被测函数挂接性能测量钩子函数,并将被测函数的编号作为性能测量钩子函数的传入参数;
所述性能记录查找模块用于,在所述被测程序的运行阶段,所述被测函数运行时进入所述性能测量钩子函数,所述性能测量钩子函数从传入参数中获得所述被测函数的编号,并将所述被测函数的编号作为数组下标,在局部性能记录数组中查找到对应的性能记录。
进一步地,所述性能记录关联模块进一步还包括链接器初始化函数链接单元,
所述链接器初始化函数链接单元用于,所述链接器完成链接后,将所述性能测量钩子函数、与性能分析工具的初始化函数作为一个单独的目标文件,分别链接进入所述被测程序以及被测动态库。
进一步地,所述性能记录关联模块进一步还包括性能记录数组创建单元,
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中兴通讯股份有限公司,未经中兴通讯股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210104308.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种基于平台的社交匹配方法
- 下一篇:一种加工软碎物料用调整定型压块机