Debug和Release版本运行速度相差太大的问题

hll127 2011-12-29 10:57:03
大家好,我遇到一个Debug版本程序和Release版本程序运行速度相差非常大的问题。我需要通过一系列步骤校正总共500多M的200多块数据,同样的代码,如果用Release版,总共大约17秒,如果Debug版大约25秒进度1%,我非常不解。
具体的代码有点乱就不贴了。一开始我以为是TRACE和ASSERT用的太多,于是都注掉了,发现还是很慢。我现在怀疑是不是因为大量用了STL的map和hash_map。另外用的都是模板函数,不知道有没有影响。
总之,一模一样的代码,切成Debug和切成Release,速度天上地下,不知道有没有人也遇到这种情况的,望指教!
...全文
5169 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
jixiang1983 2011-12-30
  • 打赏
  • 举报
回复
Debug版与Release版速度有大的差别是很正常的,Release版本身会自己优化
kyotrue 2011-12-30
  • 打赏
  • 举报
回复
debug在调用任何函数后都会检查堆栈的,如果调用函数过多、函数体过小,和Release差个几十倍也不奇怪
GIS_wudi 2011-12-30
  • 打赏
  • 举报
回复
调试的时候会不断的进行文字的读写,而文字读写往往是最耗时的,不要纠结二者的速度比较,调试没有问题,release速度不满就是我们的目标
hll127 2011-12-29
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ouyh12345 的回复:]

处理大数据时,算法和工具十分重要
说一下大致的处理过程
[/Quote]
校正是对单块数据进行的,循环了200多次,也就是200多块数据。每块数据就是约2200行610列的图像,校正就是调整每个像素的亮度值。我是先用map来存参考列(中间的一列)的直方图,再将其余剩下的列的直方图匹配到参考列,在匹配时是用hash_map来存亮度差的,最后是根据存到hash_map里的亮度差对待校正列的像素进行逐点校正,大致的过程基本就是这样。简单来说算法就是直方图匹配,但是图像的亮度值不是0-255,可能是0-65535
,或-32768-32767,也可能是浮点数。
Eleven 2011-12-29
  • 打赏
  • 举报
回复
Debug 为调试版本,包含调试信息,并且不作任何优化,便于程序员调试程序。
Release 为发布版本,往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的。
ouyh12345 2011-12-29
  • 打赏
  • 举报
回复
处理大数据时,算法和工具十分重要
说一下大致的处理过程
ArcRain 2011-12-29
  • 打赏
  • 举报
回复
DEBUG模式本来就是没有经过优化的代码,而且某些库文件会加入一些额外的调试代码与信息。
慢是正常的...
寻欢 2011-12-29
  • 打赏
  • 举报
回复
毫不知情,我是来试账号的
  • 打赏
  • 举报
回复
Debug本来是用来调试的 发布最好用release
liangbina07 2011-12-29
  • 打赏
  • 举报
回复
Debug版本下要打印所有的调试信息,处理了一些程序中定义的Debug宏的函数 和Release 是优化版本编译
hll127 2011-12-29
  • 打赏
  • 举报
回复
我在网上大概搜了一下:
http://bbs.gameres.com/showthread.asp?threadid=63082
http://bbs.bccn.net/thread-109650-1-9.html
http://bbs.gameres.com/showthread.asp?threadid=130310

的确没想到,STL的map在Debug和Release下性能差得这么大,可能原因就是这样。
jyh_baoding 2011-12-29
  • 打赏
  • 举报
回复
差别不会太大
ouyh12345 2011-12-29
  • 打赏
  • 举报
回复
我是先用map来存参考列(中间的一列)的直方图
如果不需要排序,用vector会快2个数量级

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧