更新时间:2026-05-11
点击次数: C N 4 3- 1258 /T PIS S N10 0 7 —130 X计算机工程与科学C Z )M P U T E RE N G I N E E R I N G & S C I E N C E20 0 9 年第31卷第A 1期V 0 1. 31, N o . A 1。 20 0 9文章编号: 10 0 7 —130 X ( 20 0 9 )A 1- 0 150 - 0 3基于运行时代码修改的动态性能监控关键技术研究。R e se a r c h o n th eK e y T e c h n o lo g ie so fD y n a m icP e r f o r m a n c eM o n ito r in gB a se d o n R u n tim e C o d eP a tc h in g蒋杰. 徐涵, 刘杰, 杨灿群。 胡庆丰JIA N GJie。 X UH a ll, L IUJie , Y A N GC an- qun。 删Q ing - feng( 国防科技大学计算机学院, 湖南长沙4 10 0 7 3)( S ch o o lo fC o m p u te r S c ie n c e - N a tio n a l U n iv e r sityo f D e f e n seT e c h n o lo g y 。 C h a n g sh a 41007 3, C h in a )摘要: 代码插桩是程序性能监控的重要环节。 动态插桩通过对可执行程序代码的运行时修改支持动态性能监控, 有助于降低性能分析工具的构建代价, 提高工具易...
C N 4 3- 1258 /T PIS S N10 0 7 130 X计算机工程与科学C Z )M P U T E RE N G I N E E R I N G & S C I E N C E20 0 9 年第31卷第A 1期V 0 1. 31, N o . A 1。 20 0 9文章编号: 10 0 7 130 X ( 20 0 9 )A 1- 0 150 - 0 3基于运行时代码修改的动态性能监控关键技术研究。R e se a r c h o n th eK e y T e c h n o lo g ie so fD y n a m icP e r f o r m a n c eM o n ito r in gB a se d o n R u n tim e C o d eP a tc h in g蒋杰. 徐涵, 刘杰, 杨灿群。 胡庆丰JIA N GJie。 X UH a ll, L IUJie , Y A N GC an- qun。 删Q ing - feng( 国防科技大学计算机学院, 湖南长沙4 10 0 7 3)( S ch o o lo fC o m p u te r S c ie n c e - N a tio n a l U n iv e r sityo f D e f e n seT e c h n o lo g y 。 C h a n g sh a 41007 3, C h in a )摘要: 代码插桩是程序性能监控的重要环节。 动态插桩通过对可执行程序代码的运行时修改支持动态性能监控, 有助于降低性能分析工具的构建代价, 提高工具易用性。 本文首先阐述了D y n in st动态插桩系统的概念抽象与执行机理, 然后结合大规模并行程序动态插桩的需要, 对D I)cL 并行程序动态插桩基础设施以及基于M R N e t的可扩展通信结构进行了深入分析。A b str a c t: C o d e in str u m en ta tio n isf l f u n d a m e n ta l ste p inp r o g r a mp e r f o r m a n c em o n ito r in g . D y n a m icinstrum entation,w h ic h is im p le m e n te do n th e b a se o f r u n tim e c o d epa tch ingo f ex ecu ta b lep r o g r a m 。 isben ef icia l tO d e c r e a se th ebu ild in gc o sta n dtoim p r o v eth eea sy - to - u seo fp e r f o r m a n c ea n a ly sisto o L In th isp a p e r , th ea bstra ctc o n c e p tsa n de x e c u tio nm e c h a n ismo fth eD y n in st d y n a m icinstrum entationsy ste ma r ed escrib ed , a f terw h ic h th eD P C Lin f ra stru ctu re f o r th ed y n a m icin stru m en ta tio no fla rg esca lep a ra llel a p p lic a tio na n dth e sc a la b le c o m m u n ic a tio na r c h ite c tu r e b a sedo nM R N e t a r e a lsoa n a ly zed .关键词: 性能监控; 运行时代码修改; 动态插桩; D y n in st; D I)C L ; M R N etK e yw m tls. p erf o rm a n cem o n ito r in g ; r u n tim ec o d epa tch ing ; d yna m icin stru m en ta tio n ; D y n in st; D P C L ; M R N etf lo i: 10. 39 69 /j. issn . 1007 - 130X2 0 0 9 . A I. 0 4 2中图分类号: T P 311文献标识码: A1引言性能监控是程序性能优化的重要环节。 程序性能优化需要依赖性能监控T 具定位程序的关键函数或代码段, 从而采取具有针对性的优化措施。 性能监控工具通常需要在目标程序中插入监控代码( 即“代码插桩” ), 以获取程序运行时的性能数据。 源码插桩与动态插桩是两种广泛使用的代码插桩方式。源码插桩在源程序特定位置处插入监控代码。 源码插桩必需访问程序源代码, 其作用范围受到一定限制, 不适用于无法提供源码的程序或者第三方库。 此外, 源码插桩还将导致其它一些问题: 插入的监控代码可能会影响程序的编译优化, 导致插桩程序与原始程序运行过程的差异; 更重要的是, 用户必须显式参与源码修改过程, 并且要求重新编译、 链接源码, 降低了性能分析工具的易用性。另一方面, 动态插桩在程序运行过程中修改可执行程序二进制代码, 不要求访问程序源码, 不要求用户参与代码插桩过程, 不改变程序的优化编译过程, 也不要求重新编译、 链接目标程序, 可以在程序运行过程中完成目标程序的修改, 进而获取程序执行信息, 并且支持按需监控, 插入的监控代码可以在不需要时从目标程序中删除, 因而在程序性能监控、 正确性调试等领域得到广泛应用。l: b ,n in s61]动态插桩系统是M a ry la n d 大学和W isco n -sin 大学联合开发的动态代码改写工具, 它提供一组A P l支持用户按需构建定制工具, 实现对处于运行状态的程序代码进行动态修改。 D y n in st在构建程序性能分析工具方面得到了广泛的应用。 基于D y n in stA P I实现的动态程序・收稿日期: 2009 07 ・13; 修订日期: 2009 - 09 10摹拿理目: 垦家自然科学基金资助项目( 60603061, 60673150); 国家863计划资助项目( 2008A A 01Z llO , 2008A A 012137)作者简介: 蒋杰( 19 7 6一), 男, 重庆人. 博士, 助理研究员, 研究方向为并行开发环境和移动计算。通讯地址: 4 10 0 7 3湖南省长沙市围防科技大学计算机学院; T el: ( 0 7 31)8 4 57 58 0 8 ; E m a il: jia n g jie@ n u d t. ed uc nA l№: Schoolo f C o m p u terS cien ce, N a tio n a lU n iv ersity o f D e le n se T e c h n o lo g y , C h a n g sh a 。 H a r ia n4 10 0 7 3. P . R C h in a
电子邮箱: facai@126.com
热线电话: 0755-89800918
公司地址: 深圳市南山区粤海街道高新区社区深圳湾创新科技中心2栋A座22层
Copyright © 2012-202X 球速体育公司 版权所有 Powered by EyouCms
备案号:粤ICP备05004158号-1
