Gprof优化初探 Gprof优化初探

Gprof优化初探

  • 期刊名字:电脑学习
  • 文件大小:328kb
  • 论文作者:林英建
  • 作者单位:渤海大学公共计算机教研部
  • 更新时间:2020-09-29
  • 下载次数:
论文简介

2009年4月电脑学习第2期Gprof优化初探林英建*摘要: 论迷了得到多蛾程情况下系统运行的相关信息的解决方案,以及避免敷据不一致情况的优化方法。关键词: Cprof系统分析优化中图分类号: TP301文献标识码: B文章编号: 1002- -2422 2009 )02- 0111-01Disucussion on Gprof OptimizationLin YingjianAbstract: The paper discuses eolution plan of related information of multi-hread syslem running, and studies the optimizationmethod to avoid data inconsistence.Keyword: GprodfSystem AnalysisOptimizationCprof是CNU profiler 工具,可以用来分析系统在运行程序中会有相应的函数捕捉该信号,捕捉到该信号后,置一时各函数调用的次数,耗时等情况,可以方便地帮助定位系个退出标记,这样就可以控制程序按照既定的逻辑在处理统的瓶颈,同时也能帮助确定程序的优化位置尽可能大的完一次完整的工作后正常退出。提升系统性能。Gprof 优化尤其适用于CPU、内存等密集性另一个值得关注的问题,在上线程序、重启程序时,通的应用模块。常都是使用klll -9来停止原有程序的,这实际上存在较1 Gprof 的安装使用大风险。若程序在执行时存在-些持久化的操作,如写磁盘在linux主机上安装Gprof后,详细的参数可通过man操作多次完成,又如先写数据、再写索引等这应该是在逻辑gprof 查看。需要重点指出的是,在目前的实际应用中,线上上的原子操作,那么kllall -9 的随机性可能破坏其原子的Gprof对多线程支持不好,直接调用只能得到主线程的相性,从而造成潜在的数据不一致。如常用的transfer中就存关信息。参考相关资料分析,其原因为Gprof采用ITIMER_在这种数据不- -致的隐患。虽然出现的概率不是很高,但PROF信号,在多线程内,只有主线程才能响应该信号。为是,长期的积累这种不一-致性是会慢慢体现出来的。此,需要使用系统提供的grol-helper.c.将其编译为so库,2常见的优化手段命令为:由于系统的优化是一一个较为复杂的问题, 在此将不做gce -shared -IPIC gprof- helper.c -ogprol-belper.so -lpthread -ld详尽的叙述仅提供一些经验供参考。so的作用实际上实现- -个 ptread creale 的钩子程序,(1)循环体内部节约n条指令,最终收益将乘以循环这样在调用phread_creale函数时就会调用到库中提供的次数。常见的如将循环体内不改变的变量移动到循环体外;pthread_ create 函数,从而实现在多线程情况下统计运行时多重循环嵌套时的顺序问题等。这种优化是收益较高的。的相关信息。在实际使用中,只要在用户的makefile文件(2)优化函数调用。这是优化提高非常明显的一种方中,加上编译选项-pg及动态链接库,如:式,常见的方式如函数inline,这样可以节约大量的函数调gce -pg inbs, main.cp .1 grof-eper.o$8 (INCLUDE) $ (ID-用的开销,避免多次的压栈出栈。FLACS) $ (LDLIBS)(3)优化内存寻址,避免重复的内存寻址.这样在编译后会生成-一个行文件a.out文件.就是包含(4)优化cpu流水线的分支预测成功率。例如,当前存相关统计功能的可执行文件。程序运行并“正常”退出后,在有ir-ele if-ele 语句,将满足概率最高的条件放到靠前会生成一个运行时的统计文件gmon.out 文件。使用命令的位置不仅能减少判断和跳转指令的执行,还有利于cepugprof -b a.out gmon.out 就可以将readable的信息输出,这在流水作业时分支预测的成功率,提高指令的流水化。些信息可以作为优化的依据。需要强调的是,上面提到的优化内存寻址和优化cpu流水线分支预测的成功率两“正常”退出是指程序是按照自身的运行逻辑正常退出的,种优化方法单独优化的提升不会很大,但是如果是在大量如果直接klll -9是不能得到统计结果的。通常程序都是的循环体内部,提升就会被放大很多倍。在循环中长时间运行,所以,实际中采用相应SICTERM 信参考文献号的方式,使用kilall 8 15, 发送SIGTERM信号给程序,[1] htp中国煤化I43495.pr.MYHCNMHG收稿日期: 2008-11-14$林英建渤海大学公共计算机教研部(辽宁,锦州121000) ●●111●

论文截图
上一条:Java性能优化
版权:如无特殊注明,文章转载自网络,侵权请联系cnmhg168#163.com删除!文件均为网友上传,仅供研究和学习使用,务必24小时内删除。