vs2005编译的debug版和Release 版到底有什么区别?

jonsenwu 2010-08-30 11:48:14
这个问题,之前的理解是Release比Debug版本去掉很多打印信息。但是到底有多大差别呢?
下面的测试程序
int i,k;
while(1)
{
i = GetTickCount();
//lpfnDllFunc1(pBuffer,pOUT);
RGB16_2_YUV422(pBuffer,pOUT);
k = GetTickCount();
RETAILMSG(1, (TEXT("RGB16_2_YUV420 time : %d \r\n"),k-i));
Sleep(500);
}
同样的程序,使用debug和Release版编译在ce6.0上运行效率相差2倍以上。debug运行时间32ms Release版运行时间10MS。但是两个版本输出打印信息都是相同的,为什么差别这么大呢?


...全文
264 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jonsenwu 2010-08-31
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 aaa_tnt 的回复:]
楼主 把Optimization 打成Maximize Speed。看看有多少改善。
[/Quote]
看了一下DEBUG时Optimization是Disable Release时的设置是Maximize Speed (/O2)
jonsenwu 2010-08-30
  • 打赏
  • 举报
回复
在网上看到个文章http://www.cnblogs.com/jembai/archive/2009/01/13/1374805.html
说的是vc上debug和Release的区别。我想也使用2005.
觉得最关键的是DEBUG版没有做任何优化,Release版本是打开了很多优化选项。
Ei 2010-08-30
  • 打赏
  • 举报
回复
楼主 把Optimization 打成Maximize Speed。看看有多少改善。
chinesedragon2010 2010-08-30
  • 打赏
  • 举报
回复
下面这个连接很详细描述了这方面的知识,虽然是VC的,但对于同为微软的开发软件V2005肯定有很多相通的地方,希望对大家有帮助http://www.360doc.com/content/10/0618/10/105968_33744293.shtml
jw212 2010-08-30
  • 打赏
  • 举报
回复
一个侧重于调试;一个侧重于运行速度,正式提交版本要比debug小很多啦
博说医械研发 2010-08-30
  • 打赏
  • 举报
回复
单从优化角度考虑也会有差异,同样一个函数在生成汇编代码的时候,release可能只有100句,而debug可能会有130句
GARY 2010-08-30
  • 打赏
  • 举报
回复
Debug版本编译的结果包含调试信息,不做优化,以向程序员提供更强的程序调试能力。Release版本不保存调试信息,同时进行多种优化,以达到代码最小和更快的速度。“同样的程序,使用debug和Release版编译在ce6.0上运行效率相差2倍以上。”这个也正常吧,之前看帖子的时候,有人测试md5算法,Debug : Release = 1.1 : 2的样子吧。

19,504

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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