gpt4 book ai didi

.net - 调试与发布 dll 大小

转载 作者:太空狗 更新时间:2023-10-29 20:49:08 25 4
gpt4 key购买 nike

为什么在 cpp 中, Debug模式下的 dll 比发布版大 10 倍,而在 .Net 中它们的大小几乎相同?

最佳答案

要调试 C++ 程序,必须将大量额外信息保存在 DLL 中,以便调试器可以在运行时找到有关代码的信息。 C++ 没有运行时要求来检查代码,这与 C# 不同,C# 允许进行广泛的运行时检查,也称为反射。无论使用 Debug模式还是 Release模式,C# 中都存在此信息。

此外,C++ 通常在 Release模式下直接编译为机器代码,编译器的目标是尽可能优化代码,例如。删除所有无关的信息和代码。在 C# 中,编译器编译为伪代码,根据需要及时编译。此代码保留了调试所需的大部分内容,无论您正在构建的是发布版还是调试版。如此之多,以至于可以编写一个反编译器来为您提供从运行时程序集返回的代码。

关于.net - 调试与发布 dll 大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1636286/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com