gcc 加调试信息影响优化后的性能吗?
时间:2010-08-30
来源:互联网

作者: liunxcu 发布时间: 2010-08-30
作者: prolj 发布时间: 2010-08-30
谢谢,但是请问还有没有更好的追踪bug的方法?目前我只知道靠调试信息来获得core文件,用来调试,但如果程序发布出去的话,
加调试信息是否合适呢?

作者: liunxcu 发布时间: 2010-08-30
汇编代码中显示的结果是除了多了一些.loc 等段信息来定位代码其他倒没什么东西
作者: davelv 发布时间: 2010-08-30
既然影响了cache命中率了,那应该也就会影响“速度”吧?可以这么理解吗?
作者: lsupper 发布时间: 2010-08-30
作者: zhangsuozhu 发布时间: 2010-08-30

作者: liunxcu 发布时间: 2010-08-30
liunxcu 发表于 2010-08-30 09:48
不知道P大说的是指令缓存还是数据缓存,反正我的N皇后主要是寄存器的数据运算,对内存吞吐量不是特别大。如果想知道对内存性能的影响,楼主可以找个编码解码的程序运行下。
作者: davelv 发布时间: 2010-08-30
其实我更关心的是,发布的程序可否加调试信息,不然以后的维护和除虫工作不知该怎么办了,不过就我的了解来说,指令缓存失靶,
比较影响性能,不知对否

作者: liunxcu 发布时间: 2010-08-30
作者: prolj 发布时间: 2010-08-30
其实我更关心的是,发布的程序可否加调试信息,不然以后的维护和除虫工作不知该怎么办了,不 ...
liunxcu 发表于 2010-08-30 10:05
你自己没有源代码么?给用户debug信息的程序做什么用?如果要分析bugreport的话也不需要这么做吧。
不仅仅是指令缓存的未命中,数据缓存同样很重要,我以前写的一个移位程序,用杂凑法(内存读写不连续)和翻转法(连续内存的读写)性能差了2倍。
而且这个重要性对不同的程序来说也不同的,具体原因上面有说。不过在汇编码中没有看到调试信息中包含指令(都是段信息),所以我理解为不会影响指令缓存的性能,不知道这样理解是否精确,欢迎各位明示。
作者: davelv 发布时间: 2010-08-30

作者: liunxcu 发布时间: 2010-08-30
调试信息都是在单独的section中的,程序运行是不会装载的,只有调试程序才会装载。
实在不放心,还可以用 -O2 -g 来编译,然后备份一下,然后strip,然后运行,需要调试时,使用未strip前备份的那个来进行调试。
如果gcc支持vc那样分离的pdb来存放调试信息,大家也不会怀疑性能了
作者: drangon 发布时间: 2010-08-30
那么,我用-O2 -g -s 的版本发布出去,如果崩溃了,产生core文件,然后我用-O2 -g 版本的可执行来调试core,不知可行吗?
作者: liunxcu 发布时间: 2010-08-30
我的目的就是想收集反馈的bug信息,然后调试,而不是自己发现bug,自己调试。

作者: liunxcu 发布时间: 2010-08-30
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28