Bap*_*cht 3 c++ gcc destructor oprofile
用oprofile分析我的程序后,我有点意外.
该个人资料显示我的计划花费85%_fini
:
CPU:Intel Core/i7,速度1199 MHz(估计)计数CPU_CLK_UNHALTED事件(未停止时的时钟周期),单位掩码为0x00(无单位掩码)计数100000个样本%图像名称符号名称553519 85.7402 eddic _fini
其他符号看起来不错.
我的程序是用GCC 4.7编译的.
根据我的理解,该符号_fini
是全球销毁的弃用构造,所以我不明白为什么我的程序在这个符号上花了这么多时间.
这可能是由于oprofile或GCC配置错误造成的吗?
我试图分析未经优化的代码,但问题并不存在.没有这样的符号没有优化.
有没有办法修复配置文件或避免花费这么多时间_fini
?
我不能粘贴我的粘贴非常长,我没有找出问题所在.
谢谢你的想法
没有看到有问题的代码真的很难说明问题所在,但_fini时间表明全局变量的析构函数(或者在程序期间也存在的静态函数变量).我建议 - 你检查所有全局+静态变量的类,看看他们的析构函数正在做什么 - 在程序中注释掉功能,直到停止发生,给你一个花费时间的地方 - 使用gdb或者另一个调试器来检查_fini发生了什么.
归档时间: |
|
查看次数: |
1642 次 |
最近记录: |