当我构建项目时,如果发布的话,构建时间会花很多时间。
发布时,链接时间为:130secs
在调试中,链接时间为:同一项目的 15 秒。
编译没有区别,但是链接有很大区别。
你知道为什么会这样吗?
当我构建项目时,如果发布的话,构建时间会花很多时间。
发布时,链接时间为:130secs
在调试中,链接时间为:同一项目的 15 秒。
编译没有区别,但是链接有很大区别。
你知道为什么会这样吗?
由于优化设置,发布构建可能较慢。通常对于调试版本,您没有优化设置 - 这意味着生成的目标文件可能或多或少地直接复制到输出中。另一方面,对于发布版本,您可能已打开LTCG或其他链接器优化可能适用。链接通常受 CPU 限制,并且通常只在单个线程中运行,因此它往往有点慢。输出越大,这似乎也变得越糟。
我的经验是,在链接过程中,大部分时间都花在生成调试信息上。如果您尝试在没有调试信息的情况下进行链接,则链接时间应该会下降(我正在处理的项目从大约 80 秒到大约 10 秒)。如果不是,那就是另外一回事了。在调试版本中,链接时间过长也可能是由不正确的增量链接引起的;我看到链接时间从 1 分钟增加到 5 分钟。如果您想在保留调试信息的同时减少链接时间,请确保您拥有尽可能少的编译单元,因为必须合并所有编译单元的调试信息。我通过让一个 cpp 文件包含这些 cpp 文件来将多个 cpp 文件组合成一个编译单元来做到这一点。
问候,
塞巴斯蒂安
我唯一能想到的就是您将 FxCop 设置为仅在发布模式下运行。这将导致大型项目的显着构建时间差异,因为如果启用 FxCop,它将作为构建过程的一部分运行。
你能给我们更多关于你的解决方案的信息吗?例如