[知识] 程序编译时选择debug和release的区别

软件和网站开发以及相关技术探讨
回复
头像
flwwater
帖子: 762
注册时间: 2010-10-31 9:15
系统: kubuntu 24.04

[知识] 程序编译时选择debug和release的区别

#1

帖子 flwwater » 2024-02-17 9:22

以C++为例:
debug版本由于带有调试信息,会额外消耗CPU资源,在运行大量计算的时候,会比release版本的程序运行时间长很多,约5倍以上。
我的一个程序release版本大概运行40分钟,debug版本要运行4个小时。
有一次不小心没选release,运行了4个小时,无法忍受,想着办法优化,结果无意发现是debug版本,在选release变成40分钟了,马马虎虎能接受,优化可是会掉头发的。 :Haha
个人收藏的数百个精美动态壁纸:
https://url17.ctfile.com/d/15983117-593 ... 768?p=6220
(访问密码:6220


个人收藏的经典国语音乐和纯音乐(钢琴,笛子,二胡等):
https://url17.ctfile.com/d/15983117-446 ... 33e?p=6220
(访问密码:6220



如果访问密码不对,可试试这个密码 566816
头像
astolia
论坛版主
帖子: 6450
注册时间: 2008-09-18 13:11

Re: [知识] 程序编译时选择debug和release的区别

#2

帖子 astolia » 2024-02-19 17:02

别在这里瞎说误导新人了。
flwwater 写了: 2024-02-17 9:22 debug版本由于带有调试信息,会额外消耗CPU资源
调试信息是给外部程序读取的,自身执行时根本不会去管这些东西。你用strip去掉调试信息再跑跑就知道了
实际影响执行效率的是两种配置的优化策略。根据编译器的不同,debug配置时会禁用全部或部分优化措施并增加一些额外的检查代码,而release配置时则一般会默认启用一些优化措施,这才是导致你程序运行时间差异的根源。
回复