我一直认为Debug版本比Release版本慢,因为编译器需要另外生成调试器信息。我最近惊讶地听到我的一位同事说发布版本通常需要更多时间。 (我相信这只是因为增量链接/编译)。
一般来说,两者中哪一个更快?
答案 0 :(得分:13)
嗯,有很多变量会影响事情。以下是调试可能更快的一些原因:
答案 1 :(得分:2)
总的来说,我希望调试版本的构建速度更快,但运行速度更慢,版本构建需要更长时间才能构建,但最终结果会更快。
这取决于发布版本可能具有更积极的优化,这些可能会干扰可调试性。此外,一些较大规模的优化确实需要很长时间。在目标文件中插入调试信息的时间足够小,可以忽略不计,它可能比首先从磁盘读取源代码花费的时间更少。
答案 2 :(得分:0)
只是一个猜测,但我认为由于优化,发布版本在大多数情况下需要更长的时间。
答案 3 :(得分:0)
调试版本通常更快,因为没有进行优化(这在发布版本中很常见)。
您可以选择不使用可执行文件生成调试符号,也不选择优化,但这对于版本构建来说会很奇怪。虽然我认为它会更快地构建。
Debug和Release之间的主要区别在于Debug用于调试(包括调试符号),Release用于运行更快,因此您使用强优化
答案 4 :(得分:0)
发布版本的主要原因是编译器会对它们进行大量优化。例如,它可以展开循环,删除不必要的变量和内联函数。优化不是一项微不足道的任务,需要大量的计算能力,从而减慢了构建速度。
大多数编译器都会让您关闭发布版本的优化。试试这个。您的构建时间将缩短。您还可以启用调试版本的优化,并查看构建时间的增长。