4

我在其他讨论中读到,与调试 dll 相比,Release dll 的大小减小了。但是为什么我制作的dll的大小是相反的:Release dll比Debug dll大。会不会造成问题?

4

4 回答 4

5

它不会引起问题,它可能是编译器在发布版本中“内联”更多项目并创建更大的代码。这一切都取决于代码本身。

没什么好担心的。

编辑:如果你真的担心而不是担心速度,你可以打开优化大小。或者关闭自动内联,看看你有什么不同。

编辑:更多信息,您可以使用 dumpbin /headers 查看 dll 变大的位置

于 2009-02-11T01:30:29.630 回答
3

发布 DLL 比调试 DLL 大多少?

您的调试 DLL 可能看起来很小,因为您正在生成 PDB 符号文件(因此调试符号实际上不在DLL文件中)。或者,如果您无意中将调试符号编译到您的 Release DLL 中。

于 2009-02-17T06:05:29.250 回答
1

这可能是由循环展开等性能优化引起的 - 如果它有很大不同,请检查您的 Release 链接器设置以确保您没有静态编译任何内容。

于 2009-02-17T06:07:42.257 回答
0

如果您的应用程序执行高性能任务,性能可能会受到影响。如果标记选项以生成包含调试信息的代码,则发布版本甚至可以大于调试版本。但这也取决于您使用的编译器。

于 2009-02-11T01:35:37.730 回答